if date_num_posts < datetime.datetime.today():
即使是同一天也是如此,因为它比较时间。如何检查日期是否与datetime.today()同一天?
如何检查日期是否与datetime.today()一样?
if date_num_posts < datetime.datetime.today():
即使是同一天也是如此,因为它比较时间。如何检查日期是否与datetime.today()同一天?
如何检查日期是否与datetime.today()一样?
如果你想只比较日期,
yourdatetime.date() < datetime.today().date()
或者说,很明显,
yourdatetime.date() == datetime.today().date()
如果要检查他们相同日期。
The documentation通常是有帮助的。它通常也是python thing_i_have_a_question_about
的第一个谷歌结果。除非你的问题是关于一个名为“蛇”的函数/模块。
基本上,datetime
模块有三种类型的用于存储时间点:
date
年,月,月的一天time
小时,分钟,秒,毫秒,时区信息datetime
结合日期和时间。它有方法date()
和time()
以获得对应的date
和time
对象,并且有一个方便的combine
函数可将date
和time
组合成一个datetime
。如果你需要比较月份中只有一天,而不是你可以使用下面的代码:如果您需要检查两个日期之间的差异是可以接受的,那么你可以使用
if yourdate.day == datetime.today().day:
# do something
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]]]]]]])
所以,你可以在天,秒,毫秒,分钟等取决于你真正需要检查DIFF:
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
您可以设置小时,分钟,秒和毫秒,无论你喜欢
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
但trutheality的答案很可能是最好的时候,他们都为零,你可以直接比较.date()
S的时代
也许是快但如果你要比较数百日期时间的,因为你只需要执行一次replace()
VS上百个电话给date()
如果它不涉及突变,我会为此投票。然而,您可以通过创建您正在比较的日期时间对象的克隆来修改此方法,然后通过删除带有分日分辨率的字段来修改它们,然后比较这些副本。 – ninjagecko
@ninja,它不会变异。 replace()返回一个新的datetime对象,就像str.replace()一样 –
all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])
每个人都应该比较使用.date()
,但在我离开这个方法为例,以防有人想,例如,按月或按分钟比较的东西,等
'.day'是日常的-这个月。因此,8月12日与12月12日使用你的第一部分代码“相等”。这可能不是OP想要的行为。 – trutheality
@trutheality - 是的,我在编辑问题之前就开始写我的答案,所以我无法理解他确切需要什么,这就是为什么我为此提供了几个选项。 –
快速提示:datetime对象具有一个名为' (''''),并且timedelta对象有一个名为'days'(带有's')的属性,以防人们发现自己的语法不起作用。 –