我需要获取一个位置的UTC偏移量。我对不同值的结果不一致感到麻烦。我只需要+HHMM
格式的值(例如,"欧洲/罗马"的+0100
(。
func main() {
loc, _:= time.LoadLocation("Asia/Kathmandu")
offset, others:= time.Now().In(loc).Zone()
fmt.Println(offset, others)
}
操场
我得到什么:
- "亚洲/加德满都":
+0545
(合适( - "亚洲/Ho_Chi_Minh":
+07
(应为+0700
( - "美国/凤凰城":
MST
(应该是-0700
( - "欧洲/罗马":
CET
(应+0100
(
参考时区国家名称
您使用的Zone()
方法与广告中的完全一致。
Zone 计算在时间 t 生效的时区,返回区域的缩写名称(例如"CET"(及其在 UTC 以东的秒偏移量。
对您来说,更好的方法是使用 Format
方法。像这样:
zone := time.Now().In(loc).Format("-0700")
当然,请注意:由于夏令时,即使这样也不会 100% 一致。