Подтвердить что ты не робот

Как проверить, соответствует ли дата в тот же день, что и datetime.today()?

Это условие всегда оценивается как True даже если оно происходит в один и тот же день, поскольку сравнивается время.

from datetime import datetime

# ...

if date_num_posts < datetime.today(): 

Как я могу проверить, совпадает ли дата с datetime.today()?

4b9b3361

Ответ 1

Если вы хотите просто сравнить даты,

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.

Ответ 2

  • Если вам нужно сравнить значение только дня месяца, вы можете использовать следующий код:

    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]]]]]]])

Таким образом, вы можете проверить 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

Ответ 3

Вы можете установить часы, минуты, секунды и микросекунды на все, что вам нравится

datetime.datetime.today().replace(hour=0, minute=0, second=0, microsecond=0)

но ответ trutheality, вероятно, лучший, когда все они равны нулю, и вы можете просто сравнить .date() времени

Возможно, это быстрее, если вам нужно сравнить сотни дат, потому что вам нужно сделать только replace() один раз против сотен вызовов date()

Ответ 4

all(getattr(someTime,x)==getattr(today(),x) for x in ['year','month','day'])

Следует сравнить с помощью .date(), но я оставляю этот метод в качестве примера, если вы хотите, например, сравнивать вещи по месяцам или минутам и т.д.