首页 > 解决方案 > 混淆更改日期时间的时区

问题描述

我运行下面的代码并对结果感到困惑

tz1 = datetime.utcnow().replace(tzinfo=dateutil.tz.tzutc())
tz2 = datetime.utcnow().replace(tzinfo=dateutil.tz.tzoffset('EAT', 28800))
print(tz1)
print(tz2)
print(tz1.astimezone(dateutil.tz.tzlocal()))
print(tz2.astimezone(dateutil.tz.tzlocal()))

结果:

2019-06-15 07:37:36.809000+00:00
2019-06-15 07:41:32.188000+08:00
2019-06-15 15:37:36.809000+08:00
2019-06-15 07:37:36.809000+08:00

我在 2019-06-15 15:37:36 运行代码(这是我的实际执行时间)我的时区是 UTC+8,所以我想更改 b 的时区,然后我尝试在 tz2 中显示的方法。

但是为什么我执行最后两个打印语句时结果是错误的呢?

标签: pythontimezonepython-dateutil

解决方案


推荐阅读