Compare two dates with different formats in Python
我不熟悉Python,只是调试现有代码。我在这里比较两个日期,但格式不同。当我进行比较时,我得到了"typeerror:cannot compare offset naive and offset aware datetime"。
if date_start <= current_date: "TypeError: can't compare offset-naive and offset-aware
str(date_start) >> 2015-08-24 16:25:00+00:00
str(current_date) >> 2015-08-24 17:58:42.092391
号
如何进行有效的日期比较?我假设我需要将一种格式转换为另一种格式。
更新
1 2 3 4 5 6 7 8 | hour_offset = 0 minute_offset = 0 if timezone_offset: offset_sign = int('%s1' % timezone_offset[0]) hour_offset = offset_sign * int(timezone_offset[1:3]) minute_offset = offset_sign * int(timezone_offset[3:5]) current_date = (datetime.datetime.now() + datetime.timedelta(hours=hour_offset,minutes=minute_offset)) |
上一个开发人员可能已经以这种方式应用了时区偏移量。有什么想法吗?
使用
一种方法是将日期转换为自epoch以来的秒数,然后进行比较。例如,如果您的日期是
1 2 3 4 5 6 7 | import datetime d1 = datetime.datetime(2015,8,24,16,25,0) d2 = datetime.datetime(2015,8,24,17,58,42,92391) if int(d1.strftime("%s")) > int(d2.strftime("%s")): print"First one is bigger" else: print"Second one is bigger" |
希望这有帮助!
这里没有更多的细节需要解决,但是如果你想得到一个
1 | (offset-aware-datetime).replace(tzinfo=None) |
要向
1 | (offset-naive-datetime).replace(tzinfo=tz) |
号