Найти - Пользователи
Полная версия: Сравнить даты
Начало » Python для новичков » Сравнить даты
1
vipTelnet
Всем привет.

Вообщем задача такая мне нужно получать с сервера только новую почту, которая была отправлена после определенного события.
Допустим в это событие я вызываю
 eventTime = datetime.now()
Далее я получаю почту и дата ее получения там указывается в таком вот формате
Fri, 31 Jan 2020 09:59:34 +0000 (UTC)
я пытаюсь преобразовать эту дату в метку времени
emailTime = datetime.strptime('Fri, 31 Jan 2020 09:59:34 +0000 (UTC)', "%a, %d %b %Y %H:%M:%S %z (%Z)")
и после сравниваю
 eventTime < emailTime 
в результате получаю ошибку
TypeError: can't compare offset-naive and offset-aware datetimes

Кто знает как с этим бороться ?
Я понимаю что у меня в переменной emailTime содержится время со смещением по часовому а поясу, а в eventTime этого смещения видимо нет.
FishHook
 d=datetime.datetime.now().astimezone(tz=datetime.timezone.utc)
AD0DE412
мне кажется (возможно ошибочно) что с секундами от начала эпохи будет попроще
ps т.е. переводить ввод в секунды … эээ … плюс немного магии немного вашего кода
vipTelnet
ответ на мой вопрос

 from datetime import datetime
import pytz
now = datetime.now(tz=pytz.utc)
emailTime = datetime.strptime('Fri, 31 Jan 2020 09:59:34 +0000 (UTC)', "%a, %d %b %Y %H:%M:%S %z (%Z)")
print(now > emailTime )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB