猿问

时区偏移?

我想从指定的时区以秒为单位获取偏移量。这正是tz_offset()Perl 的Time::Zone所做的:“以秒为单位确定指定时区的 GMT 偏移量”。

在 Go 中已经有这样做的方法了吗?输入是一个带有时区名称的字符串,仅此而已,但我知道 Go 包含LoadLocation()time包中,因此string => offsetlocation => offset应该没问题。

输入: “MST”

输出: -25200


繁花如伊
浏览 204回答 2
2回答

四季花海

这应该可以解决问题:location, err := time.LoadLocation("MST")if err != nil {    panic(err)}tzName, tzOffset := time.Now().In(location).Zone()fmt.Printf("name: [%v]\toffset: [%v]\n", tzName, tzOffset)将打印:名称:[MST] 偏移量:[-25200]去游乐场:https : //play.golang.org/p/GVTgnpe1mB1

慕雪6442864

这是计算本地时区和指定时区之间的当前偏移量的代码。我同意Ainar-G 的评论,即偏移量仅与指定的时间有关:package mainimport (    "fmt"    "time")func main() {    loc, err := time.LoadLocation("MST")    if err != nil {        fmt.Println(err)    }    now := time.Now()    _, destOffset := now.In(loc).Zone()    _, localOffset := now.Zone()    fmt.Println("Offset:", destOffset-localOffset)}
随时随地看视频慕课网APP

相关分类

Go
我要回答