Example
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 会浪费时间(因为它们最后代表相同的时区......)
谢谢你的帮助。
Update:
使用答案的反馈将“CET”更改为“欧洲/罗马”,以确保示例中的时区相同
They do not代表同一件事。
"CET" http://www.timeanddate.com/library/abbreviations/timezones/eu/cet.html is always世界标准时间+01:00
"Europe/Berlin" http://www.timeanddate.com/time/zone/germany/berlin冬季为 CET (UTC+01:00),夏季为 CEST (UTC+02:00)。
也可以看看:
-
时区标签 wiki https://stackoverflow.com/tags/timezone/info- 具体来说,“时区!=偏移”部分
-
dst 标签维基 https://stackoverflow.com/tags/dst/info- 涵盖夏令时。
关于编辑,Europe/Rome https://github.com/eggert/tz/blob/2014e/europe#L1478-L1484是一个独特的时区。它不一样Europe/Berlin https://github.com/eggert/tz/blob/2014e/europe#L1246-L1251, nor Europe/Zurich https://github.com/eggert/tz/blob/2014e/europe#L2709-L2713, nor Europe/Amsterdam https://github.com/eggert/tz/blob/2014e/europe#L1831-L1837。至少对于他们的整个历史来说不是。
如果您比较它们的定义(使用前一段中的链接),您会发现它们在过去的某个时刻都符合 CET/CEST 的“EU”规则。罗马和柏林自 1980 年以来,苏黎世自 1981 年以来,阿姆斯特丹自 1977 年以来。在这些日期之前,它们存在显着差异。其他时区也有不同的规则。
如果您对这些地区的历史感兴趣,我建议您阅读欧洲档案 https://github.com/eggert/tz/blob/master/europe在 TZ 数据中。光是评论就很有趣了。
另一方面,如果您只使用现代日期,其中所有区域都遵循相同的规则和偏移量,那么您可以考虑这些可替代的 - 至少只要它们将来不会改变。
还有,还有are有些时区只是别名并且完全可以互换。在 TZ 数据中,它们被称为“链接”。例如,您可以看到here https://github.com/eggert/tz/blob/2014e/europe#L1486-L1487 that Europe/Vatican
and Europe/San_Marino
都链接到Europe/Rome
,因此是等价的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)