为什么我在python中看到时区奇怪

时间:2018-06-21 16:00:00

标签: python python-3.x pytz

使用Python3,我执行以下操作:

from datetime import datetime
from pytz import timezone
df = datetime(2018, 6, 1, hour=0, minute=0, tzinfo=timezone('US/Eastern'))
print(df)
2018-06-01 00:00:00-04:56

那么,为什么将日期时间设置为-4:56的偏移量?不应该是-5:00吗?为什么要休息4分钟?

1 个答案:

答案 0 :(得分:-1)

eastern_tz = timezone('US/Eastern')
eastern_time = eastern_tz.localize(datetime(2018, 6, 1, 0, 0))

这将为您提供正确的结果:

>>> print(eastern_time)
2018-06-01 00:00:00.000000-04:00

原因是python datetime模块时区对象与pytz时区对象不直接兼容。 pytz文档说:

  

如果要创建本地挂钟时间,则需要使用   本文档中介绍的localize()方法