#python #dst #imaplib
#python #летнее время #imaplib
Вопрос:
У меня есть скрипт, который обрабатывает данные, относящиеся к предыдущему сообщению электронной почты, которое приходит каждый день в 00: 30. Таким образом, данные за 30 марта 2019 года будут отправлены в 00:30 31 марта. Я извлекаю электронные письма, используя следующий код на Python 2.7
server = imaplib.IMAP4_SSL(HOST)
server.login(USERNAME, PASSWORD)
server.select('INBOX'
rv, data = server.search(None,'FROM', From, 'SUBJECT', Subject,'SENTSINCE', from_date)
Код отлично работал в течение 3 месяцев до перехода на летнее британское время (я живу в Великобритании). При проверке данных imap обнаружил, что почта была получена в 23:30 30 марта вместо 00:30 31 марта. Моя ОТПРАВКА была 31 марта 2019 года, и imap не возвращал никаких сообщений.
Моим часовым поясом является стандартное время GMT, и когда я использую datetime, я получаю правильное время, скорректированное с учетом перехода на летнее время. Мой вопрос в том, как я могу установить часовой пояс, чтобы imaplib правильно интерпретировал время?
Комментарии:
1. Строка кода
server.select('INBOX'
кажется неполной.2. Что говорится в RFC о часовых поясах?
3. В IMAP RFC ничего не говорится о часовых поясах, поэтому интерпретация зависит от сервера, и у клиента нет возможности управлять этим. Многие серверы работают по местному времени, многие по UTC и т.д. Адаптируйте свой запрос так, как это необходимо для вашего сервера.