Python 日期时间错误?

Python datetime bug?

好吧,我在这里不知所措。在转换为时间戳然后从时间戳转换回时,似乎任意将一个小时添加到日期中有什么原因吗?

import datetime
dt = datetime.datetime(year=2020, month=3, day=8, hour=2)
print(dt)
dt2 = datetime.datetime.fromtimestamp(dt.timestamp())
print(dt2)

输出为:

2020-03-08 02:00:00
2020-03-08 03:00:00

咦? 在 3.10.4 和 3.10.3

上测试

您的代码在我位于阿德莱德(澳大利亚)的计算机上运行良好。它不在您身上的原因是美国东部时间的夏令时从 2020 年 3 月 8 日开始,因此时钟从凌晨 2 点向前切换到凌晨 3 点,因此为凌晨 2 点生成的时间戳对应于实际时间凌晨 3 点(因为凌晨 2 点实际上并不存在)。如果您使用 hour=1hour=3 尝试您的代码,它将正常工作。

您可以通过仅使用 UTC 时间来解决此问题。