Я хочу преобразовать строку datetime в объект datetime, который будет дополнительно обработан для отображения в другом формате.
Строка находится в for, 2018-04-24T16:42:17Z.
Я пробовал следующий метод, но он дает ошибку.
import datetime
datetime.datetime.strptime('2018-04-24T16:42:17Z', '%b %d %Y %I:%M%p')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python\lib\_strptime.py", line 510, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "D:\Python\lib\_strptime.py", line 343, in _strptime
(data_string, format))
ValueError: time data '2018-04-24T16:42:17Z' does not match format '%b %d %Y %I:%M%p'
Пожалуйста помоги.
Строка формата, которую вы пытаетесь использовать, даже отдаленно не близка к формату, который вы пытаетесь проанализировать. Посмотрите на документы. Как вы думаете, почему %b («Месяц как сокращенное название языка») будет соответствовать 2018, пробел - дефису и т. д.?
Вырвался вперед stackoverflow.com/questions/466345/…
Но вы должны указать формат строки, которую вы пытаетесь обработать, которая явно начинается с года.
Ошибка довольно проста. Формат, который вы передали (второй аргумент), не работает для строки, которую вы анализируете (первый аргумент). Почему вы ожидали, что эта строка формата будет работать? Пожалуйста, поделитесь своим исследованием. Вы читали документацию о том, как работает datetime.strptime()?
Да, наверное, я пропустил эту часть. Спасибо, в любом случае.






У вас есть несоответствие в строковом представлении даты и времени.
Пытаться:
import datetime
print(datetime.datetime.strptime('2018-04-24T16:42:17Z', '%Y-%m-%dT%H:%M:%SZ'))
Выход:
2018-04-24 16:42:17
Почему за него отказывают?