TypeError: не может сравнивать смещенные наивные и смещенные даты - PullRequest
0 голосов
/ 31 января 2020

Я получаю объект datetime из сообщения электронной почты, а затем пытаюсь сравнить его с datetime.now

И затем я вижу эту ошибку

datetime.now ()> datetime.strptime (' Пт, 31 января 2020 09:59:34 +0000 (UT C) ', "% a,% d% b% Y% H:% M:% S% z (% Z)"

TypeError: невозможно сравнить смещенные наивные и смещенные даты

Как ее решить?

1 Ответ

0 голосов
/ 14 апреля 2020

Это будет происходить каждый раз, когда вы сравниваете смещение-наивное (datetime.now () Нет информации о часовом поясе) с временем смещения (UT C). Python имеет плохую поддержку часового пояса по умолчанию. Даже если вы использовали datetime.utcnow () для сравнения, технически просто возвращает вам время UT C, но все еще имеет наивный часовой пояс.

Я предлагаю установить пакет pytz и выполнить:

import pytz datetime.now (). Replace (tzinfo = pytz.UT C)> datetime.strptime ('Fri, 31 января 2020 года 09:59:34 +0000 (UT C) ', "% a,% d% b% Y% H:% M:% S% z (% Z)"

Для дальнейшие ссылки см .: https://docs.python.org/3/library/datetime.html#datetime .datetime.utcnow

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...