如何检查date是否与datetime.today()同一天?
if date_num_posts < datetime.datetime.today():
即使是同一天,也是如此,因为它是比较时间。
如何检查date是否与datetime.today()同一天?
如果你只想比较date,
yourdatetime.date() < datetime.today().date()
或者显然,
yourdatetime.date() == datetime.today().date()
如果你想检查他们是同一date。
文档通常是有帮助的。 它通常也是python thing_i_have_a_question_about
的第一个google结果。 除非你的问题是关于一个名为“蛇”的函数/模块。
基本上, datetime
模块有三种types来存储时间点:
-
date
为年,月,日 -
time
为几小时,几分钟,几秒,几微秒,时区信息 -
datetime
时间结合date和时间。 它具有方法date()
和time()
来获取相应的date
和time
对象,还有一个方便的combine
function来将date
和time
组合成一个datetime
time
。
-
如果您只需要比较一个月份的date值,则可以使用以下代码:
if yourdate.day == datetime.today().day: # do something
-
如果您需要检查两个date之间的差异是否可以接受,那么您可以使用timedelta :
if (datetime.today() - yourdate).days == 0: #do something
-
如果你只想比较date部分,你可以简单地使用:
from datetime import datetime, date if yourdatetime.date() < datetime.today().date() # do something
请注意,timedelta具有以下格式:
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
所以你可以根据你真正需要的日子,秒,毫秒,分钟等来检查差异:
from datetime import datetime if (datetime.today() - yourdate).days == 0: #do something
在你的情况下,当你需要检查两个date是完全一样的,你可以使用timedelta(0):
from datetime import datetime, timedelta if (datetime.today() - yourdate) == timedelta(0): #do something
all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])
我们应该使用.date()
来进行比较,但是我想把这个方法作为一个例子,例如,按照月份或者按分钟来比较等等。
你可以设置小时,分钟,秒和微秒为任何你喜欢的
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
但是当它们都是零时,真实性的答案可能是最好的,你可以比较时间的.date()
也许这是更快,但如果你必须比较数百个date时间,因为你只需要执行replace()
一次,而对数百个date()