给定区域的 pytz 中的 DST 偏移量错误
Posted
技术标签:
【中文标题】给定区域的 pytz 中的 DST 偏移量错误【英文标题】:Wrong DST offset in pytz for a given zone 【发布时间】:2019-05-23 23:02:22 【问题描述】:墨西哥城的 DST(夏令时)于当地时间 2018 年 10 月 28 日凌晨 3:00 结束,那是时钟向后移动一小时重新开始于 2:00 的确切时刻。
创建以下感知日期时间时:
>>>mex = pytz.timezone('America/Mexico_City')
>>>mex_dt = mex.localize(datetime(2018,10,28,1,30))
我得到这个结果:
>>>print(mex_dt)
2018-10-28 01:30:00-06:00
虽然正确的结果应该是:
2018-10-28 01:30:00-05:00
因为创建的 01:30AM 时间仍然属于 DST,并且应该具有 -05:00 的偏移量。看起来 pytz 假设所有国家/地区的时钟都在 2:00 向后移动,但在墨西哥并非如此,这种情况发生在 3:00
有人知道我该如何纠正吗?建议?
【问题讨论】:
【参考方案1】:我看到你问了同样的问题on the IANA time zone mailing list。
作为 Paul Eggert replied there,您的信息似乎不正确。墨西哥的official time policy 确实将过渡时间设置为2:00。如果您有相反的信息,请分享您的来源。
您还可以查看此更改visualized here,或阅读有关time in Mexico on Wikipedia 的信息。
【讨论】:
以上是关于给定区域的 pytz 中的 DST 偏移量错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥 pytz 在跨越 TZ 和 DST 边界而不是 TZ 名称时正确调整时间和偏移量?
给定 UTC 时间戳和 UTC 偏移量,是不是可以在 Python 中获取时区?
如何在 python 和 django 中使用 Pytz 根据给定的 UTC 偏移量转换数据和时间?