在 Go 中正确使用时区
尝试解析时区代码时,了解 Go 中时区处理方式的细微差别至关重要.
您提供的代码设置了一个名为 parseAndPrint 的函数,该函数需要一个时间实例和一个时区缩写作为参数。但是,无论您指定哪个时区,该函数的输出始终为“05:00:00 0000 UTC”。
出现问题的原因是您正在解析当前位置的时间,该时间可能与所需的时区。 Go 的 time.Parse 函数假设您正在当前位置进行解析,除非使用 time.Location 显式指定。
要正确解析特定时区的时间,您应该使用以下步骤:
以下是如何在您的应用程序中使用这些步骤的示例代码:
func parseAndPrintWithLocation(now time.Time, timezone string) { location, err := time.LoadLocation(timezone) if err != nil { fmt.Println(err) return } test, err := time.ParseInLocation("15:04:05 MST", fmt.Sprintf("05:00:00", timezone), location) if err != nil { fmt.Println(err) return } test = time.Date( now.Year(), now.Month(), now.Day(), test.Hour(), test.Minute(), test.Second(), test.Nanosecond(), test.Location(), ) fmt.Println(test) }
通过使用正确的时区位置方法,您可以确保解析的时间反映所需的时区,从而使您的代码能够准确处理来自不同地区的时间。
以上是Go中如何正确解析和处理时区?的详细内容。更多信息请关注PHP中文网其他相关文章!