Go 要抵消的时区?

Go 要抵消的时区?,go,timezone,Go,Timezone,我希望以秒为单位获得指定时区的偏移量。这正是Perl中的tz_offset()所做的:“以指定时区的秒为单位确定与GMT的偏移量” 在围棋中已经有这样做的方法了吗?输入是一个具有时区名称的字符串,仅此而已,但我知道Go在time包中有LoadLocation(),因此string=>offset或location=>offset应该可以 输入:“MST” 输出:-25200这是计算本地和指定时区之间当前偏移量的代码。我同意偏移仅在特定时间点才有意义: package main import (

我希望以秒为单位获得指定时区的偏移量。这正是Perl中的
tz_offset()
所做的:“以指定时区的秒为单位确定与GMT的偏移量”

在围棋中已经有这样做的方法了吗?输入是一个具有时区名称的字符串,仅此而已,但我知道Go在
time
包中有
LoadLocation()
,因此string=>offset或location=>offset应该可以

输入:“MST”


输出:-25200

这是计算本地和指定时区之间当前偏移量的代码。我同意偏移仅在特定时间点才有意义:

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)
}

这应该可以做到:

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]


去操场:

无论如何,这不是同一个问题。不过,我编辑了我的问题以使其更清楚。@OmarOthman您不能通过字符串获得偏移量,因为偏移量也取决于时间。想一想,或者说,@Ainar-G谢谢你的评论,我是这个世界的初学者。但是看看,这就是正在发生的事情@OmarOthman,函数返回当前区域相对于UTC(GMT)的偏移量<代码>位置,错误:=时间.LoadLocation(“MST”);\,偏移量:=Time.Now().In(loc.Zone()我不想要本地时区的偏移量,我想要GMT的偏移量。这会改变什么吗?你能改变你的代码来反映这一点吗?另外,你能看看我对问题本身的最后评论吗?