我想从指定的时区以秒为单位获取偏移量。这正是tz_offset()Perl 的Time::Zone所做的:“以秒为单位确定指定时区的 GMT 偏移量”。在 Go 中已经有这样做的方法了吗?输入是一个带有时区名称的字符串,仅此而已,但我知道 Go 包含LoadLocation()在time包中,因此string => offset或location => offset应该没问题。输入: “MST”输出: -25200
2 回答
四季花海
TA贡献1811条经验 获得超5个赞
这应该可以解决问题:
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
TA贡献1812条经验 获得超5个赞
这是计算本地时区和指定时区之间的当前偏移量的代码。我同意Ainar-G 的评论,即偏移量仅与指定的时间有关:
package main
import (
"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)
}
- 2 回答
- 0 关注
- 203 浏览
添加回答
举报
0/150
提交
取消