考虑以下因素:
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
dt = datetime(1677, 9, 22, 5, 0, tzinfo=timezone.utc)
print(dt.astimezone(ZoneInfo("EST")))
在我的 MacOS 机器上,按预期打印
1677-09-22 00:00:00-05:00
。在我的 Windows 11 机器上,它打印 1677-09-21 23:41:52-05:18:08
。
虽然我承认像
EST
这样的特定时区对于这么旧的日期时间来说并没有多大意义,但我仍然很困惑为什么偏移量增加了约 18 分钟,并且仅在 Windows 上。
2024 年的日期时间在两个平台上的转换与预期完全相同。
我找到了这个答案here。这个问题与你的问题非常相似。