如何检查日期是否与datetime.today()相同?

mad*_*ops 71 python

from datetime import datetime

# ...

if date_num_posts < datetime.today(): 
Run Code Online (Sandbox Code Playgroud)

即使它是同一天也总是如此,因为它是在比较时间.

如何检查日期是否与datetime.today()相同?

tru*_*ity 141

如果你只想比较日期,

yourdatetime.date() < datetime.today().date()
Run Code Online (Sandbox Code Playgroud)

或者,显然,

yourdatetime.date() == datetime.today().date()
Run Code Online (Sandbox Code Playgroud)

如果你想检查它们是否是一天.

文档通常很有帮助.它通常也是谷歌的第一个结果python thing_i_have_a_question_about.除非您的问题是关于名为"snake"的函数/模块.

基本上,该datetime模块有三种类型用于存储时间点:

  • date 年,月,日
  • time 小时,分钟,秒,微秒,时区信息
  • datetime结合日期和时间.它有方法date()time()获得相应的datetime对象,并且有一个方便的combine功能来组合datetime成为一个datetime.

  • “这通常也是 python thing_i_have_a_question_about 的第一个谷歌结果”除非有人在这个主题上发表了 SO 条目,就像这里发生的那样:) (5认同)

Art*_*nka 34

请注意,timedelta具有以下格式:

datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
Run Code Online (Sandbox Code Playgroud)

因此,您可以根据您真正需要的内容,以秒,秒,毫秒,分钟等方式检查差异:

from datetime import datetime
if (datetime.today() - yourdate).days == 0:
    #do something
Run Code Online (Sandbox Code Playgroud)

在您需要检查两个日期完全相同的情况下,您可以使用timedelta(0):

from datetime import datetime, timedelta
if (datetime.today() - yourdate) == timedelta(0):
    #do something
Run Code Online (Sandbox Code Playgroud)