Как я могу проверить, является ли дата тем же днем, что и дата-время.сегодня()?
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()