Python检查日期是否在24小时内

时间:2016-08-22 12:55:37

标签: python

我一直在为此尝试一些代码,但我似乎无法完全绕过它。

我有一个设定日期,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小时?

4 个答案:

答案 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(...) 对象。此对象存储自旧日期以来经过的天数、秒数和微秒数。