Python 2.7 Datetime对象偏移量不知道,即使使用Dateutil解析器也是如此 18 tz=pytz.时区('美国/芝加哥') 19 TZOffset={'CST':-21600} 20篇帖子,自发布时间=1小时 21 now_date=datetime.datetime.now(tz) 22时间戳=现在日期-datetime.timedelta(小时数=发布时间自小时数) 23 24线程_批=[] 25对于螺纹中的螺纹: 26上次发布时间=解析( 27线程[“LatestPostDate”], 28 tzinfos=TZOffset) 29 30如果上次发布时间>时间戳: 31线程\u批处理追加(线程) one@chat-dash~/.willie$python req.py 回溯(最近一次呼叫最后一次): 文件“req.py”,第30行,在 如果上次发布时间>时间戳: TypeError:无法比较初始偏移量和感知偏移量的日期时间

Python 2.7 Datetime对象偏移量不知道,即使使用Dateutil解析器也是如此 18 tz=pytz.时区('美国/芝加哥') 19 TZOffset={'CST':-21600} 20篇帖子,自发布时间=1小时 21 now_date=datetime.datetime.now(tz) 22时间戳=现在日期-datetime.timedelta(小时数=发布时间自小时数) 23 24线程_批=[] 25对于螺纹中的螺纹: 26上次发布时间=解析( 27线程[“LatestPostDate”], 28 tzinfos=TZOffset) 29 30如果上次发布时间>时间戳: 31线程\u批处理追加(线程) one@chat-dash~/.willie$python req.py 回溯(最近一次呼叫最后一次): 文件“req.py”,第30行,在 如果上次发布时间>时间戳: TypeError:无法比较初始偏移量和感知偏移量的日期时间,python,date,datetime,Python,Date,Datetime,我不明白为什么它会抱怨这个。我使用了datutil.parserparse来识别最后一次发布时间偏移量。解析的tzinfos参数没有指定要使用哪个时区,它只允许您向dateutil识别的时区添加新的自定义时区。要在生成的datetime中获取时区,传递给parse的字符串必须包含时区字符串 如果字符串不包含时区,则需要在返回datetime后自己添加时区。更新:我最终忽略了parse(),使用datetime strTime,然后使用localize()添加时区 您是否打印了两个日期时间以确保问

我不明白为什么它会抱怨这个。我使用了
datutil.parser
parse
来识别
最后一次发布时间
偏移量。

解析
tzinfos
参数没有指定要使用哪个时区,它只允许您向
dateutil
识别的时区添加新的自定义时区。要在生成的datetime中获取时区,传递给
parse
的字符串必须包含时区字符串


如果字符串不包含时区,则需要在返回datetime后自己添加时区。

更新:我最终忽略了parse(),使用datetime strTime,然后使用localize()添加时区

您是否打印了两个日期时间以确保问题是您认为的问题?是的,解析器()没有设置时区进入
parse
的字符串是什么样子的?在:2014-02-03T14:49:33.663之前和之后:2014-02-03 14:49:33.663000
18 tz = pytz.timezone('America/Chicago')
19 TZOFFSETS = {'CST' : -21600}
20 POSTS_SINCE_HOUR = 1 
21 now_date = datetime.datetime.now(tz)
22 time_stamp = now_date - datetime.timedelta(hours=POSTS_SINCE_HOUR)
23 
24 thread_batch = []
25 for thread in threads:
26     last_post_time =  parse(
27             thread["LatestPostDate"],
28             tzinfos=TZOFFSETS)
29             
30     if last_post_time > time_stamp:
31         thread_batch.append(thread)


one@chat-dash ~/.willie $ python req.py 
Traceback (most recent call last):
  File "req.py", line 30, in <module>
    if last_post_time > time_stamp:
TypeError: can't compare offset-naive and offset-aware datetimes