我一直在为此尝试一些代码,但我似乎无法完全绕过它。
我有一个设定日期,set_date
这只是你期望的一些随机日期,而且这只是我得到的数据。
现在我想要一些错误函数,如果datetime.now()
在set_date
的24小时内就会引发错误。
我一直在尝试timedelta(hours=24)
from datetime import datetime, timedelta
now = datetime.now()
if now < (set_date - timedelta(hours=24)):
raise ValidationError('')
我不确定这是怎么回事,最好的办法是做什么。我如何确定当前时间是否在设定日期之前24小时?
答案 0 :(得分:9)
喜欢那个?
if now-timedelta(hours=24) <= set_date <= now+timedelta(hours=24):
... #date within 24 hours
如果您想检查两侧24小时内的日期:
starting-light
答案 1 :(得分:2)
检查日期是否在24小时内。
在当前时间和过去时间之间取一个差异,然后检查是否存在。天是零。
past_date = datetime(2018, 6, 6, 5, 27, 28, 369051)
difference = datetime.utcnow() - past_date
if difference.days == 0:
print "date is within 24 hours"
## Also you can check the difference between two dates in seconds
total_seconds = (difference.days * 24 * 60 * 60) + difference.seconds
您可以检查total_seconds是否小于所需时间
答案 2 :(得分:0)
那样做:
if now - timedelta(hours=24) <= set_date <= now + timedelta(hours=24):
#Do something
相当于:
if now - timedelta(hours=24) <= set_date <= now or now <= set_date <= now + timedelta(hours=24):
# ---^--- in the past 24h ---^--- in the future 24h
#Do something
答案 3 :(得分:0)
就是这么简单:
from datetime import datetime
#...some code...
if (datetime.now() - pastDate).days > 1:
print('24 hours have passed')
else:
print('Date is within 24 hours!')
您在此处所做的是从当前日期 pastDate
中减去旧日期 datetime.now()
,从而为您提供时间增量 datetime.timedelta(...)
对象。此对象存储自旧日期以来经过的天数、秒数和微秒数。