Как я могу проверить, является ли дата тем же днем, что и дата-время.сегодня()?
if date_num_posts < datetime.datetime.today():
всегда верно, даже если это один и тот же день, потому что он сравнивает время.
Как я могу проверить, если дата совпадает с датой и временем.сегодня()?
4 ответа:
если вы хотите просто сравнить даты,
yourdatetime.date() < datetime.today().date()
или, очевидно,
yourdatetime.date() == datetime.today().date()
если вы хотите проверить, что они тот же дата.
документация обычно помогает. Это также, как правило, первый результат в Google
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
Если вам нужно проверить, что разница между двумя датами приемлема, то вы можете использовать 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
вы можете установить часы, минуты, секунды и микросекунды, чтобы все, что вам нравится
datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)
но ответ trutheality, вероятно, лучше всего, когда все они равны нулю, и вы можете просто сравнить
.date()
s временможет быть, это быстрее, хотя, если вам нужно сравнить сотни раз даты, потому что вам нужно только сделать
replace()
один раз против сотен звонков вdate()