True即使是同一天,此条件也总是计算为,因为它正在比较时间。
from datetime import datetime
# ...
if date_num_posts < datetime.today():
如何检查日期是否与同一天datetime.today()?
Answers:
如果您只想比较日期,
yourdatetime.date() < datetime.today().date()
或者,显然
yourdatetime.date() == datetime.today().date()
如果要检查它们是同一日期。
该文档通常很有帮助。通常,它也是的第一个Google搜索结果python thing_i_have_a_question_about。除非您的问题与名为“ snake”的功能/模块有关。
基本上,datetime模块具有三种存储时间点的类型:
date 年,月,日time 时,分,秒,微秒,时区信息datetime结合日期和时间。它具有方法date()和time()获取对应的date和time对象的功能,并且有一个方便的combine函数可以将组合date并time成datetime。如果只需要比较一个月中的某天的值,则可以使用以下代码:
if yourdate.day == datetime.today().day:
# do something
如果需要检查两个日期之间的差异是否可以接受,则可以使用 timedelta:
if (datetime.today() - yourdate).days == 0:
#do something
如果只想比较日期部分,则可以简单地使用:
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
在您需要检查两个日期是否完全相同的情况下,可以使用timedelta(0):
from datetime import datetime, timedelta
if (datetime.today() - yourdate) == timedelta(0):
#do something
.day是每月的一天。因此,使用您的第一个代码段,“ 8月12日”等于“ 12月12日”。这可能不是OP想要的行为。
您可以将小时,分钟,秒和微秒设置为任意值
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
但是,当它们全部为零时,真实性的答案可能是最好的,您可以比较.date()时代
但是,如果您必须比较数百个日期时间,则可能会更快,因为您只需要执行replace()一次,而数百次调用date()