Python 如何检查给定的datetime对象是否为;介于;两次约会?
如何检查我的当前时间是否介于两者之间Python 如何检查给定的datetime对象是否为;介于;两次约会?,python,django,datetime,time,Python,Django,Datetime,Time,如何检查我的当前时间是否介于两者之间 my_event = Event.objects.get(id=4) current_time = datetime.datetime.now() my\u event.start\u time
my_event = Event.objects.get(id=4)
current_time = datetime.datetime.now()
my\u event.start\u time
只要开始时间和结束时间没有关联的tzinfo类,您的答案就是正确的。您不能直接将原始日期时间与时区日期时间进行比较。如果比较三个日期,您可以使用简单的方法,如下所示
my_event.start_time < current_time < my_event.end_time
如果日期1
我知道这很古老,但由于这在谷歌搜索结果中占有很高的地位,这里的答案没有考虑两种情况:
if date1 < yourdate < date2:
...do something...
else:
...do ...
def处理时间(开始时间、开始时间、结束时间):
如果开始测试的日期时间需要全部为naive(无时区)或all aware(时区)。如果您尝试比较aware和naive,则会出现异常。如果所有的日期时间都知道,那么在比较时,时区实际上不必匹配
e、 g
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
类RND(datetime.tzinfo):
“”“UTC随机时区-3”“”
def utcoffset(自身,dt):
return datetime.timedelta(小时=-3)
def tzname(自身,dt):
返回“RND”
def dst(自身,dt):
return datetime.timedelta(小时=0)
愚人节=datetime.datetime(年=2017,月=4,日=1,小时=12,tzinfo=pytz.UTC)
random_dt=datetime.datetime(年=2017,月=4,日=1,小时=9,tzinfo=RND())
random_dt==愚人节
#与转换回utc的时间相同。
#在3个原始日期时间的测试之间
start_spring=datetime.datetime(年=2018,月=3,日=20)
end_spring=datetime.datetime(年=2018,月=6,日=21)
愚人节=日期时间。日期时间(年=2018,月=4,日=1)
如果开始春天<愚人节>结束春天:
打印“愚人节在春天”
class RND(datetime.tzinfo):
""" Random timezone UTC -3 """
def utcoffset(self, dt):
return datetime.timedelta(hours=-3)
def tzname(self, dt):
return "RND"
def dst(self, dt):
return datetime.timedelta(hours=0)
april_fools = datetime.datetime(year=2017, month=4, day=1, hour=12, tzinfo=pytz.UTC)
random_dt = datetime.datetime(year=2017, month=4, day=1, hour=9, tzinfo=RND())
random_dt == april_fools
# True as the same time when converted back to utc.
# Between test of 3 naive datetimes
start_spring = datetime.datetime(year=2018, month=3, day=20)
end_spring = datetime.datetime(year=2018, month=6, day=21)
april_fools = datetime.datetime(year=2018, month=4, day=1)
if start_spring < april_fools < end_spring:
print "April fools is in spring"