登录
首页 >  Golang >  Go问答

没有IANA时区数据库 - 仍然可行吗?

来源:stackoverflow

时间:2024-02-19 19:39:26 172浏览 收藏

golang学习网今天将给大家带来《没有IANA时区数据库 - 仍然可行吗?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

我需要使用这样的时区字符串:

CET-1CEST,M3.5.0,M10.5.0/3

CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00

但是 go time pkg 使用的是 IANA 时区数据库,例如:Europe/Paris

是否有办法使用或转换字符串? 我想添加/减去各个区域的时差。


正确答案


您需要构建(或查找)一张 3 字母时区到 IANA 时区的地图,其中涵盖您将看到的时区。

原因是像 CET 这样的 3 字母时区不能保证是唯一的(事实上,不是唯一的)。

例如,CET 涵盖多个 TZDB 时区。它们都是 UTC+0100,但有所不同

  • 他们是否遵守夏令时,以及
  • 从标准时间切换到夏令时/夏令时的日期,反之亦然。

PST 覆盖“太平洋标准时间”(UTC-0800/UTC-0700),覆盖美国西海岸,但也覆盖亚洲/马尼拉 (UTC+0800/UTC+0800)。

类似的异常现象还有很多:世界很大,有很多不同的政府和文化。

此外,历史也很重要:多年来,时区的地理边界发生了变化,夏令时的规则也发生了变化。因此,要获得相对于 UTC 的本地时间测量的准确概念,除了本地时间测量本身之外,您不仅需要知道测量的地点,还需要知道测量的时间。

[如果你必须考虑从儒略历到公历的转变,情况会变得更糟:这需要几个世纪才能完成。例如,俄罗斯直到第一次世界大战结束时布尔什维克革命之后才改用公历。

今天关于《没有IANA时区数据库 - 仍然可行吗?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>