大家都对wberry造成的困惑感到满意,但是为了得到一个简洁的答案,我将在这里进行总结。
根据datetime文档,当比较两个datetime.time对象时:“如果两个比较符都知道并且具有不同的tzinfo属性,则首先通过减去其UTC偏移量(从self.utcoffset()获得)来调整比较符”
在您给出的示例中,比较会引发TypeError,因为EASTERN_TZ.utcoffset()返回None。utcoffset为None,因为美国东部遵守夏令时,因此与UTC的时间偏移取决于datetime.time中不可用的日期。
您应该使用datetime.datetime对象进行跨时区比较:
>>> import pytz, datetime>>> UTC_TZ = pytz.utc>>> EASTERN_TZ = pytz.timezone('America/New_York')>>> d1 = datetime.datetime(2012, 1, 1, 10, 0, tzinfo=UTC_TZ)>>> d2 = datetime.datetime(2012, 1, 1, 10, 0, tzinfo=EASTERN_TZ)>>> d1 < d2True
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)