我在 Python 中将时间从 UTC 转换为 MSK 时遇到问题。我注意到,当我在日期时间中设置莫斯科时区时,我得到了错误的结果 - 偏移了 +2:30 小时。
下面是我正在运行的代码(Python 3.11.5):
from datetime import datetime
datetime(2023, 11, 8, 22, 11, 7, 0, pytz.timezone('Europe/Moscow'))
结果是:
datetime.datetime(2023, 11, 8, 22, 11, 7, tzinfo=<DstTzInfo 'Europe/Moscow' LMT+2:30:00 STD>)
但是 Google 说 3:00 小时偏移是正确的
我的问题是:
这不是 pytz 的正确用法,不要将 tzinfo 直接附加到 datetime init。
相反:
>>> tz = pytz.timezone('Europe/Moscow')
>>> tz.localize(datetime(2023, 11, 8, 22, 11, 7, 0))
datetime.datetime(2023, 11, 8, 22, 11, 7, tzinfo=<DstTzInfo 'Europe/Moscow' MSK+3:00:00 STD>)