Python 3.7 自 2019 年 4 月以来错误的 Unix 时间戳

Wrong Unix timestamp since April 2019 in Python 3.7

如果,在Python3.7下:

from datetime import datetime
datetime(2019, 4, 1).timestamp()

我正在 1554073200.0。根据 https://www.unixtimeconverter.io/list/2019/april,不应该是 1554076800.0(即再多 1 小时)吗?

我在 2019 年 4 月 1 日之后才收到此错误。例如,如果我尝试:

datetime(2019, 3, 31).timestamp()

我得到 1553990400.0,我相信这是预期的结果。

我正在使用 Spyder 3.3.6。感谢您的帮助

问题是您的日期时间是 "naïve"。它不知道它所在的时区。 timestamp 方法(如文档中指定)假设您需要本地时区,在您的情况下,它在 2019 年 3 月 31 日有 DST 更改。要获得答案你想要,你需要设置时区。例如,

from datetime import datetime, timezone
d = datetime(2019,4,1, tzinfo=timezone.utc)
d.timestamp()

如您所料1554076800.0