我正在尝试将 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)