Как сравнить даты в Python? - PullRequest
       20

Как сравнить даты в Python?

2 голосов
/ 24 октября 2011

Мне нужно посмотреть, если у даты больше X дней.Как я могу сделать это в Python?

Я проверил что-то вроде:

if datetime.date(2010, 1, 12) > datetime.timedelta(3):

Я получил ошибку:

TypeError: can't compare datetime.date to datetime.timedelta

Любая подсказка о том, как этого добиться

Ответы [ 2 ]

7 голосов
/ 24 октября 2011

Вы не можете сравнить datetime с timedelta.timedelta представляет длительность, datetime представляет конкретный момент времени. разница двух datetime с timedelta.Дата и время сопоставимы, как и timedelta с.

У вас есть 2 варианта:

  • Вычтите еще один datetime из того, что вы дали, и сравнитеполучая timedelta с timedelta, который вы также дали.
  • Конвертируйте timedelta в datetime, добавляя или вычитая его к другому datetime, а затем сравнивайте полученный datetimeс datetime, который вы дали.
1 голос
/ 24 октября 2011

Сравнивать яблоки и апельсины всегда очень сложно!Вы пытаетесь сравнить «12 января 2010 года» (фиксированный момент времени) с «3 часами» (продолжительность).В этом нет никакого смысла.

Если то, что вы спрашиваете, «падает ли мой datetime после n-го дня месяца», то вы можете сделать:

my_important_date = datetime.now()

if my_important_date.day > n:
    pass #do you important things
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...