Python: How to compare two date/time?
我有以下两个日期/时间,分别是
1 2 3 4 5 | 2017-04-15 00:00:00 2017-04-17 15:35:19+00:00 parsed1 = dateutil.parser.parse(date_time1) parsed2 = dateutil.parser.parse(date_time2) |
如果我收到另一个叫
1 2 3 | # Would like to check if `input_date_time` is within the range if parsed1 <= input_date_time <= parsed2: … |
号
有一个错误:
想把它分解为年、月、日、时、分和秒,然后比较每一个。
正确的方法是什么?
这是我再版的例子。我想我们应该为每一个日期对象提供时间区数据假设日期是本地时间。我想我们应该在日期之前添加时间区数据,1 Instead of clear other tzinfo(我的第一个例子)
ZZU1
如果输入在
在你的例子中,你需要给天真的日期对象(EDOCX1&2)一个时间区(以使它知道)或将原来的日期对象(EDOCX1&3)转换为一个天真的对象(以你为例),而日期是要比较的。然后你的伤寒就会消失
自从你的第二个日期有
1 2 3 4 | parsed1 = dateutil.parser.parse(date_time1) parsed2 = dateutil.parser.parse(date_time2) # make parsed1 timezone aware (UTC) parsed1 = parsed1.replace(tzinfo=pytz.utc) |
现在你的对比应该工作。如果你想在任何日期指定另一时间段,可以使用
1 2 | syd_tz = pytz.timezone('Australia/Sydney') syd_parsed1 = parsed1.astimezone(syd_tz) |
现在你可以用
1 2 | print("Local time: %s" % syd_parsed1.strftime('%c')) print("Offset-Timezone-Date-Time: %s" % syd_parsed1.strftime("%z-%Z-%x-%X)) |
希望时区功能能帮助我,当我第一次使用时,当我不知道
假设你有Python的日期Python的两个物体可以与"<","="和">signs作比较。
你不必把他们比作对比You don't need to parse them to compare them.
1 2 | if date_time1 <= input_date_time <= datetime_2: #do work |
如果你没有日期对象,那么在日期类中也有一种被称为日期的方法,这将使你能够创建日期对象,如果你发现它是有用的。