如何在Python中组合时区感知日期和时间?

时间:2012-06-28 22:00:44

标签: python timezone pytz

我有一个日期和时间,我试图在Python中结合。时间是时区意识。

然而,当我尝试将它们组合起来时,我得到了错误的时间。

import pytz
from datetime import time, date
NYC_TIME = pytz.timezone('America/New_York')

start_date = date(2012, 7, 7)
start_time = time(hour = 0, tzinfo = NYC_TIME)
combined = datetime.combine(start_date, start_time)
print combined
print NYC_TIME.normalize(combined)

这会打印2012-07-07 00:00:00-05:00,标准化为2012-07-07 01:00:00-04:00。为什么会这样?我怎么能避免它?

1 个答案:

答案 0 :(得分:3)

没有附加日期的时间必须假定它不在夏令时期间。一旦你附上日期,就可以纠正这个假设。区域偏移更改,时间也会更改,以使其保持相同的UTC等效值。