首页 > 解决方案 > pytz DST 的问题

问题描述

我试图了解 pytz 如何处理 DST 并遵循文档中的示例,其相关部分如下:

>>> fmt = '%Y-%m-%d %H:%M:%S %Z%z'
>>> eastern = timezone('US/Eastern')
>>> loc_dt = datetime(2002, 10, 27, 1, 30, 00)
>>> est_dt = eastern.localize(loc_dt, is_dst=True)
>>> edt_dt = eastern.localize(loc_dt, is_dst=False)
>>> print(est_dt.strftime(fmt) + ' / ' + edt_dt.strftime(fmt))
2002-10-27 01:30:00 EDT-0400 / 2002-10-27 01:30:00 EST-0500

有趣的是,重复该示例year=2020会产生两个偏移量为 -0400 的 EDT 日期:

>>> loc_dt = datetime(2020, 10, 27, 1, 30, 00)
>>> est_dt = eastern.localize(loc_dt, is_dst=True)
>>> edt_dt = eastern.localize(loc_dt, is_dst=False)
>>> print(est_dt.strftime(fmt) + ' / ' + edt_dt.strftime(fmt))
2020-10-27 01:30:00 EDT-0400 / 2020-10-27 01:30:00 EDT-0400

为什么没有 -0500 偏移量的 EST 日期?

标签: pythontimezone-offsetpytz

解决方案


推荐阅读