Python、Pandas:非洲/开罗时区在2023年不采用夏令时(DST)

9udxz4iz  于 2023-04-18  发布在  Python
关注(0)|答案(2)|浏览(172)

我需要本地化我的时间戳以获得埃及当地时间。自2011年以来,埃及已停止使用DST。但是,埃及将从2023年4月28日开始重新应用DST。
问题是pandas中的“非洲/开罗”时区没有得到重新应用。它使用DST直到2010年,但在2023年没有恢复。在pandas中本地化时间戳时,除了为每个时间戳手动指定时间偏移外,是否有方法显式指定DST转换日期?我尝试了pytz,但遇到了同样的问题。

>>> pd.Timestamp('20100501').tz_localize('Africa/Cairo')
Timestamp('2010-05-01 00:00:00+0300', tz='Africa/Cairo')

>>> pd.Timestamp('20230501').tz_localize('Africa/Cairo')
Timestamp('2023-05-01 00:00:00+0200', tz='Africa/Cairo')   # Should be +3 too
57hvy0tb

57hvy0tb1#

感谢上面的评论。
解决方案是升级Pytz

pip install -U pytz

现在

>>> pd.Timestamp('20230501').tz_localize('Africa/Cairo')
Timestamp('2023-05-01 00:00:00+0300', tz='Africa/Cairo')

即使没有升级pandas或导入pytz。

vx6bjr1n

vx6bjr1n2#

pandas版本2.0.0中,它似乎工作得很好。
你用的是哪一个Pandas版本?

相关问题