Python strptime не анализирует часовой пояс EST% z - PullRequest
1 голос
/ 24 октября 2019

Я пытаюсь разобрать строку '10 / 23/2019 18:02:05 EST 'в дату и время с часовым поясом, используя Python 3.7.

Код:

from datetime import datetime
timestamp = datetime.strptime(date_str, '%m/%d/%Y %I:%M:%S %p %Z')

Ошибка:

ValueError: time data '10/23/2019 6:02:05 PM EST' does not match format '%m/%d/%Y %I:%M:%S %p %Z'

Когда я создаю дату и время и выводю его, используя то же форматирование, я получаю правильный вывод. Единственное отличие состоит в том, что перед часом стоит 0, но добавление 0 перед цифрой 6 в строке даты приводит к той же ошибке.

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

date_lst = date.split()
date_str = ' '.join(date_lst[0:3])
timestamp = datetime.strptime(date_str, '%m/%d/%Y %I:%M:%S %p')
new_tz = pytz.timezone(date_lst[3])
timestamp_tz = new_tz.localize(timestamp)```

1 Ответ

1 голос
/ 24 октября 2019

Попробуйте

>>timestamp = datetime.strptime('10/23/2019 6:02:05 PM EST', '%m/%d/%Y %I:%M:%S %p EST')

>>2019-10-23 06:02:05

Извините, но, как уже упоминалось, это не ошибка.

...