获取完整的UTC偏移格式

问题描述 投票:-2回答:1

我需要获取某个位置的UTC偏移量。我对来自不同值的结果不一致感到困扰。我需要获取的只是格式为+HHMM的值(例如,“欧洲/罗马”为+0100)。

func main() {
    loc, _:= time.LoadLocation("Asia/Kathmandu")
    offset, others:= time.Now().In(loc).Zone()
    fmt.Println(offset, others)
}

Playground

我得到的是:

  • ““亚洲/加德满都”:+0545(合适)
  • “亚洲/胡志明市:+07(应为+0700
  • ““美国/凤凰城”:MST(应为-0700
  • “欧洲/罗马”:CET(应为+0100

Reference Timezone country names

go time timezone timezone-offset
1个回答
3
投票

您正在使用的Zone()方法正在工作exactly as advertized

Zone计算在时间t生效的时区,返回时区的缩写名称(例如“ CET”)及其在UTC以东的秒数内的偏移量。

对您而言,更好的方法是使用Format方法。类似于:

Format

当然,要注意:由于夏令时,即使这也不是100%一致。

© www.soinside.com 2019 - 2024. All rights reserved.