Go 中如何进行时区转换?

Nei*_*eil 1 timezone go

例如,time.Now()时区为 UTC。

utcNow := time.Now()
fmt.Println(utcNow)
Run Code Online (Sandbox Code Playgroud)

输出

2009-11-10 23:00:00 +0000 UTC
Run Code Online (Sandbox Code Playgroud)

如何将此时间转换为日本标准时间?

Dan*_*nza 5

看起来您正在 Go Playground 中运行该程序,这就是为什么时间自动设置为 UTC(程序启动时也始终设置为 2009 年 11 月)。

如果您在自己的计算机上运行time.Now(),​​它应该选择本地区域。或者,如果您想强制时间位于特定时区,可以将 time.Location 对象与 time.Time.In 函数一起使用。

l, err := time.LoadLocation("Asia/Tokyo") // Look up a location by it's IANA name.
if err != nil {
    panic(err) // You can handle this gracefully.
}
fmt.Println(utcNow.In(l))
Run Code Online (Sandbox Code Playgroud)

请注意,它仍然显示同一时刻,但现在带有 JST 的偏移量。

有关更多信息,请查看 time 包的 go 文档。http://golang.org/pkg/time