Я хочу сохранить дату получения электронных писем из учетной записи Gmail в базе данных временных рядов.
Проблема в том, что я не могу преобразовать строку, полученную из электронного письма, в метку времени.
Я пробовал это:
from datetime import datetime
date1 = 'Thu, 28 May 2020 08:15:58 -0700 (PDT)'
date1_obj = datetime.strptime(date1, '%a, %d %b %Y %H:%M:%S %z %Z')
print(date1_obj)
Но получил эту ошибку:
Traceback (most recent call last):
File "/format_date.py", line 11, in <module>
date1_obj = datetime.strptime(date1, '%a, %d %b %Y %H:%M:%S %z %Z')
File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/_strptime.py", line 577, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "/usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/lib/python3.7/_strptime.py", line 359, in _strptime
(data_string, format))
ValueError: time data 'Thu, 28 May 2020 08:15:58 -0700 (PDT)' does not match format '%a, %d %b %Y %H:%M:%S %z %Z'
Пробовал с или без заключения в скобки часового пояса. Читайте много, но ничего о том, как работать со строками даты, содержащими "(PDT)" или любые другие часовые пояса. Очень важно получить правильную дату ... Если я запустил тот же код без "(PDT)", я получил неправильное время (из-за моего местного времени).
Я знаю, что могу использовать строковые методы для манипулировать им и преобразовывать в правильное datetime, но я чувствую, что это было бы гибко.
Простите за мой ужасный английский sh.
Спасибо!