gpt4 book ai didi

python - 如何比较python中的两个时区?

转载 作者:太空狗 更新时间:2023-10-29 22:26:18 26 4
gpt4 key购买 nike

例子

 import pytz
b=pytz.timezone('Europe/Rome')
c=pytz.timezone('Europe/Berlin')

虽然这两个时区名称不同,但代表的是同一件事

  • b==c 返回 false
  • b.zone 与 c.zone 不同

有没有办法看出 b 实际上等于 c?

具体问题是我必须转换 pandas 数据帧的时区,但前提是这个时区不同于 c。原始时区可能是 b,在这种情况下我不想转换,因为将 b 转换为 c 会浪费时间(因为它们最后代表相同的时区....)

感谢您的帮助。

更新:将“CET”更改为“欧洲/罗马”以确保示例中的时区相同,使用答案的反馈

最佳答案

它们代表同一事物。

  • "CET" 总是 UTC+01:00

  • "Europe/Berlin"在冬季的 CET (UTC+01:00) 和夏季的 CEST (UTC+02:00) 之间交替。

另见:

关于编辑,Europe/Rome是一个不同的时区。它与 Europe/Berlin 不同, 也不 Europe/Zurich , 也不 Europe/Amsterdam .至少不是他们的整个历史。

如果您比较它们的定义(使用前一段中的链接),您会发现它们在过去的某个时刻都与 CET/CEST 的“欧盟”规则一致。罗马和柏林自 1980 年以来,苏黎世自 1981 年以来,阿姆斯特丹自 1977 年以来。在这些日期之前,它们存在显着差异。其他时区也有不同的规则。

如果您对这些区域的历史感兴趣,我建议您阅读 europe file在 TZ 数据中。光是评论就很有趣。

另一方面,如果您只使用现代日期,其中所有区域都遵循相同的规则和偏移量,那么您可以考虑这些可替代的 - 至少只要它们在未来不会改变。

另外, 一些时区只是别名,完全可以互换。在 TZ 数据中,它们被称为“链接”。例如,您可以看到 here Europe/VaticanEurope/San_Marino 都链接到 Europe/Rome,因此是等价的。

关于python - 如何比较python中的两个时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24265998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com