Python 规范化日期时间对象
我正在做一些约会魔法,试图弄明白为什么时间有点短 2014年6月3日下午3点(UTC):Python 规范化日期时间对象,python,datetime,pytz,Python,Datetime,Pytz,我正在做一些约会魔法,试图弄明白为什么时间有点短 2014年6月3日下午3点(UTC): >>> chicago = pytz.timezone('US/Central') >>> chicago.localize(datetime(2014,6,3,15,0,0)).astimezone(pytz.utc) datetime.datetime(2014, 6, 3, 20, 0, tzinfo=<UTC>) >>> chica
>>> chicago = pytz.timezone('US/Central')
>>> chicago.localize(datetime(2014,6,3,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014, 6, 3, 20, 0, tzinfo=<UTC>)
>>> chicago.localize(datetime(2014,12,2,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014, 12, 2, 21, 0, tzinfo=<UTC>)
芝加哥=pytz.timezone('US/Central')
>>>芝加哥.本地化(日期时间(2014,6,3,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014,6,3,20,0,tzinfo=)
2014年12月2日下午3点(UTC):
>>> chicago = pytz.timezone('US/Central')
>>> chicago.localize(datetime(2014,6,3,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014, 6, 3, 20, 0, tzinfo=<UTC>)
>>> chicago.localize(datetime(2014,12,2,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014, 12, 2, 21, 0, tzinfo=<UTC>)
芝加哥.本地化(日期时间(2014,12,2,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014,12,2,21,0,tzinfo=)
第二个示例中的小时是21,而第一个示例中的小时是20。我想可能日期没有正常化,所以我尝试了以下方法:
>>> chicago.normalize(chicago.localize(datetime(2014,12,2,15,0,0))).astimezone(pytz.utc)
datetime.datetime(2014, 12, 2, 21, 0, tzinfo=<UTC>)
芝加哥.标准化(芝加哥.本地化(日期时间(2014,12,2,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014,12,2,21,0,tzinfo=)
还是21岁。这是怎么回事?夏令时
在第一个案例中(6月3日),芝加哥实行中央夏令时。UTC的偏移量为五小时
>>> fmt = '%Y-%m-%d %H:%M:%S %Z%z'
>>> clt=chicago.localize(datetime(2014,6,3,15,0,0))
>>> clt.strftime(fmt)
'2014-06-03 15:00:00 CDT-0500'
^^^^^^^^
在第二种情况下(12月2日),芝加哥处于中央标准时间。UTC的偏移量为6小时
>>> clt=chicago.localize(datetime(2014,12,2,15,0,0))
>>> clt.strftime(fmt)
'2014-12-02 15:00:00 CST-0600'
^^^^^^^^
您对normalize()
的调用在这里没有帮助,因为您没有对跨越DST边界的本地时间执行日期或时间算术