Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 5, 2020 17:33:07

vipTelnet
Зарегистрирован: 2019-08-21
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнить даты

Всем привет.

Вообщем задача такая мне нужно получать с сервера только новую почту, которая была отправлена после определенного события.
Допустим в это событие я вызываю

 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 этого смещения видимо нет.

Офлайн

#2 Фев. 5, 2020 18:58:01

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Сравнить даты

 d=datetime.datetime.now().astimezone(tz=datetime.timezone.utc)



Офлайн

#3 Фев. 5, 2020 19:08:28

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Сравнить даты

мне кажется (возможно ошибочно) что с секундами от начала эпохи будет попроще
ps т.е. переводить ввод в секунды … эээ … плюс немного магии немного вашего кода



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Фев. 5, 2020 19:29:59)

Офлайн

#4 Апрель 15, 2020 20:39:24

vipTelnet
Зарегистрирован: 2019-08-21
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Сравнить даты

ответ на мой вопрос

 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 )

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version