UTC 时间与欧洲/华沙时间换算

问题描述 投票:0回答:1

我正在尝试将 UTC 时间转换为欧洲/华沙时间。华沙时间现在为 UTC + 2 小时。我不知道为什么我提前 30 分钟得到结果。我正在从类似于以下内容的字符串解析日期:7:27:02 AM 或 2:16:28 PM。

print(time_str) #6:47:46 PM
format = '%I:%M:%S %p'
time_obj = datetime.strptime(time_str, format)
utc_time = time_obj.replace(tzinfo=ZoneInfo('Etc/UTC'))
converted_time = utc_time.astimezone(tz=ZoneInfo('Europe/Warsaw')).time()

print(utc_time.time(), converted_time)

输出是

6:47:46 PM
18:47:46
20:11:46

虽然我期待:

6:47:46 PM
18:47:46
20:47:46

编辑 - 此行修复了它:

time_obj = datetime.strptime(time_str, format).replace(year=2021, month=7, day=14)
python datetime timezone zoneinfo
1个回答
0
投票

这里 pytz 模块附带了帮助:

from pytz import all_timezones, timezone

datetime.fromisoformat('2024-11-03T22:20:00Z').astimezone(timezone('Poland'))

all_timezones 显示可用的 tz

© www.soinside.com 2019 - 2024. All rights reserved.