Python抱怨“时间”是天真的,而它实际上是知道的。错误?

时间:2014-09-07 01:35:37

标签: python python-2.7 datetime timezone pytz

好的,使用Python 2.7,让我们首先使用pytz(2014.07)中的时区创建两个time个对象:

from datetime import time
import pytz

t1 = time(tzinfo=pytz.timezone('UTC'))
t2 = time(tzinfo=pytz.timezone('CET'))

仔细检查他们是否都知道:

print(t1.tzinfo, t2.tzinfo)
# (<UTC>, <DstTzInfo 'CET' CET+1:00:00 STD>)

因此,我们可以比较它们。我们这样做:

t1 == t2
# TypeError: can't compare offset-naive and offset-aware 

尽管他们都知道,为什么会这样?

在处理零偏移量的时区时,看起来这是Python 2.7和time对象的一个​​特例:

  • 适用于Python 3.4
  • 如果我将'UTC'替换为'EET' - 工作正常
  • 如果我将'UTC'替换为'GMT' - 仍然失败
  • 如果我将time替换为datetime s - 工作正常(!)

0 个答案:

没有答案