要偏移的时区

  • 本文关键字:时区 go timezone
  • 更新时间 :
  • 英文 :


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

在 Go 中已经有办法做到这一点了吗?输入是一个具有时区名称的字符串,仅此而已,但我知道 Go 在 time 包中具有LoadLocation(),因此字符串 => 偏移量或位置 => 偏移量应该没问题。

输入:"MST"

输出: -25200

这应该可以解决问题:

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

下面是计算

本地时区和指定时区之间的当前偏移量的代码。我同意 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)
}

相关内容

  • 没有找到相关文章

最新更新