我有一个时区幼稚的时间对象。我也有一个用户指定的时区。我的数据库将时间对象存储为UTC,所以我试图将用户给我的时间转换为UTC时间。然后,当我检索它时,我正在尝试撤消该操作。但是,在我将其恢复后,我得到了一个不同的日期,然后我开始了。
import pytz
from datetime import datetime
timezone = 'US/Alaska'
start_date = datetime(2018, 7, 28, 10, 0, tzinfo=pytz.timezone(timezone))
# datetime.datetime(2018, 7, 28, 10, 0, tzinfo=<DstTzInfo 'US/Alaska' LMT-1 day, 14:00:00 STD>)
utc_datetime = start_date.astimezone(pytz.utc)
# datetime.datetime(2018, 7, 28, 12, 0, tzinfo=<DstTzInfo 'US/Alaska' AKDT-1 day, 16:00:00 DST>)
converted_back = utc_datetime.astimezone(pytz.utc)
# datetime.datetime(2018, 7, 28, 12, 0, tzinfo=<DstTzInfo 'US/Alaska' AKDT-1 day, 16:00:00 DST>)
start_date != converted_back