如何检查给定的日期时间对象是否在两个日期时间之间?
my_event = Event.objects.get(id=4)
current_time = datetime.datetime.now()
我该怎么检查当前时间是否在这两个时间之间呢?
my_event.start_time < current_time < my_event.end_time
5 个回答
3
我知道这个问题已经很久了,但因为它在谷歌搜索结果中排名很高,所以这里的回答没有考虑到两种情况:
- 如果你的时间正好等于你设定的范围,比如你的范围是6到8,而时间是6。
- 如果你的时间范围是从18:00到6:00,这个范围是有效的;但是19:00就不在这个范围内。
我写了一个函数来处理时间比较,希望这能帮助到查看这个旧问题的朋友们。
def process_time(intime, start, end):
if start <= intime <= end:
return True
elif start > end:
end_day = time(hour=23, minute=59, second=59, microsecond=999999)
if start <= intime <= end_day:
return True
elif intime <= end:
return True
return False
12
你可以用一个简单的if语句来比较三个日期,像这样:
if date1 < yourdate < date2:
...do something...
else:
...do ...
11
只要 start_time 和 end_time 没有关联的时区信息,你的做法就是正确的。你不能直接把一个没有时区的时间和一个有时区的时间进行比较。