【发布时间】:2019-03-16 12:20:06
【问题描述】:
我想通过 UTC 偏移量加载位置,例如
func main() {
L, err := time.LoadLocation("UTC+8")
if err != nil {
panic(err)
}
fmt.Println(L)
}
代码恐慌:panic: unknown time zone UTC+8
如何通过 UTC 偏移量(不是本地或 UTC,而是另一个位置)获取位置对象,而不必以 IANA 时区格式指定它,例如“America/New_York”
我的目的很简单:我有一个在固定位置运行的 Web 服务器,我可以很容易地获取本地时间。现在我想根据访问者的位置(由 url 参数发送,例如http://myserver.com/do_something?timezone=-8)进行时间计算。
【问题讨论】:
-
如果你做的事情正确,你不应该关心你的服务器在什么位置。UTC适用于任何地方。只需获取 UTC 时间,而不是服务器的本地时间。服务器的本地时间应该与您的应用程序无关。此外,请记住,偏移量仅适用于单个时间点,其中时区表示可能适用的 所有 偏移量。
America/New_York在标准时间是 UTC-5,在夏令时是 UTC-4。另请参阅the timezone tag wiki 中的“时区!= 偏移量”。 -
@MattJohnson 我想以当地时间显示时间。考虑一下两天后你想在上海买一张电影票的用例,你现在在伦敦,今晚要飞到那里。您希望时间为当地时间。