【发布时间】:2023-03-10 09:58:01
【问题描述】:
在 Python 3.9.6 上,这可以按预期工作:
import datetime
A = datetime.datetime(2021,1,1)
A.astimezone(datetime.timezone.utc)
>> datetime.datetime(2021, 1, 1, 0, 0, tzinfo=datetime.timezone.utc)
但在 Python 3.9.5 上,我得到:
import datetime
A = datetime.datetime(2021,1,1)
A.astimezone(datetime.timezone.utc)
>> datetime.datetime(2020, 12, 31, 23, 0, tzinfo=datetime.timezone.utc)
为什么会有这种行为?我只想通过保留原始日期时间数据来将 utc 感知 tzone 添加到天真的日期时间,如 3.9.6 中所示。
【问题讨论】:
-
两个 Python 版本安装的库版本是否存在差异?
-
与
zoneinfomodule相关的3.9.6可能有一些变化。 -
@sophros 不,pytz 在两者上都有相同的版本(2021.1)
-
你为什么首先使用 pytz? Python 3.9 不再需要它。你有
zoneinfo。对于 UTC,您甚至在 datetime 模块中有timezone.utc。 -
@MrFuppes 好的,已更新
标签: python python-3.x datetime pytz