Почему моя функция python не может отформатировать дату и время? - PullRequest
0 голосов
/ 13 февраля 2020

Я прочитал много похожих вопросов, но не могу понять, почему моя дата и время не анализируются. Кажется, все правильно. Я несколько раз проверял на наличие опечаток.

Строка кода:

timestamp = datetime.datetime.strptime('2020-02-13T15:36:06.0453079Z', '%Y-%m-%dT%H:%M:%S.%f%Z')

выдает ошибку:

time data '2020-02-13T15:36:06.0453079Z' does not match format '%Y-%m-%dT%H:%M:%S.%f%Z'

Я импортировал datetime.

Может кто-нибудь объяснить мне, что я делаю не так, пожалуйста?

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Apaprently, Python не поддерживает синтаксический анализ идентификатора Z для часовых поясов. См., Например, https://discuss.python.org/t/parse-z-timezone-suffix-in-datetime/2220.

Кроме того, у вас также есть слишком много десятичных цифр для ваших секунд: директива %f анализирует микросекунды, но вы go до 1/10 микросекунд (то есть 7 десятичных знаков). Удалите последние 9 и замените 'Z', например, 'UT C', и ваша строка будет проанализирована:

>>> datetime.datetime.strptime('2020-02-13T15:36:06.045307UTC', '%Y-%m-%dT%H:%M:%S.%f%Z')
datetime.datetime(2020, 2, 13, 15, 36, 6, 45307)
0 голосов
/ 13 февраля 2020

Это должно работать, но я не могу объяснить, почему:

timestamp = datetime.datetime.strptime('2020-02-13T15:36:06.0453079Z', '%Y-%m-%dT%H:%M:%S.0%fZ')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...