一分耕耘,一分收获!既然打开了这篇文章《time.LoadLocation() 给出美国/太平洋新时区的未知时区》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!
问题内容Go版本:1.14.2
操作系统:Linux (Ubuntu)
我正在开发一个基于动态时区的系统,用户可以在其中设置时区。我有一个用户将时区设置为 US/Pecific-New。对于这个时区,golang时间包给出以下错误:
未知时区 US/Pacific-New
我对此进行了研究,发现时间包从具有文件路径的本地系统加载时区:
/usr/share/zoneinfo
/usr/local/go/lib/time
在这些路径上、我的本地系统以及暂存 Pacific-New 上,这两个位置都缺少。
有办法在这些地点获得 Pacific-New 吗?
解决方案
US/Pacific-New
从来都不是“真实”时区,不应在任何系统上选择。
它的创建是为了反映太平洋时间的潜在变化,但这一变化从未成为法律。当时的想法是在更改之前准备好一个时区。然而,由于该法案没有颁布,这被证明是一次失败的实验。 TZDB 不再尝试在对未来变化的推测性预期中创建区域,而是仅在正式或迫在眉睫时添加或更新它们。
最终,US/Pacific-New
只是 US/Pacific
的链接,后来更新为 America/Los_Angeles
首选形式的链接。包含 US/Pacific-New
的此类链接的最后一个 TZDB 版本是2020a。
来自 2020b 发行说明:
您可以通过在 TZDB 中搜索 the NEWS
file 搜索“Pacific-New”和“pacificnew”并阅读 the 2020a version of the pacificnew
file from before it was deleted,通过此链接条目了解有关悠久历史的更多信息。
就实际建议而言,请勿在任何系统上设置 US/Pacific-New
。它不再是有效的时区标识符。整个系统都会受到影响。改用 America/Los_Angeles
。
终于介绍完啦!小伙伴们,这篇关于《time.LoadLocation() 给出美国/太平洋新时区的未知时区》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~编程网公众号也会发布Golang相关知识,快来关注吧!