我需要获取某个位置的UTC偏移量。我对来自不同值的结果不一致感到困扰。我需要获取的只是格式为+HHMM
的值(例如,“欧洲/罗马”为+0100
)。
func main() {
loc, _:= time.LoadLocation("Asia/Kathmandu")
offset, others:= time.Now().In(loc).Zone()
fmt.Println(offset, others)
}
我得到的是:
+0545
(合适)+07
(应为+0700
)MST
(应为-0700
)CET
(应为+0100
)您正在使用的Zone()
方法正在工作exactly as advertized。
Zone计算在时间t生效的时区,返回时区的缩写名称(例如“ CET”)及其在UTC以东的秒数内的偏移量。
对您而言,更好的方法是使用Format
方法。类似于:
Format
当然,要注意:由于夏令时,即使这也不是100%一致。