Как преобразовать текст datetime в объект datetime в Python?

Я хочу преобразовать строку 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'

Пожалуйста помоги.

Почему за него отказывают?

Boudhayan Dev 24.04.2018 19:56

Строка формата, которую вы пытаетесь использовать, даже отдаленно не близка к формату, который вы пытаетесь проанализировать. Посмотрите на документы. Как вы думаете, почему %b («Месяц как сокращенное название языка») будет соответствовать 2018, пробел - дефису и т. д.?

abarnert 24.04.2018 19:57

Вырвался вперед stackoverflow.com/questions/466345/…

IT and Decoumantary Kurdish 24.04.2018 19:57

Но вы должны указать формат строки, которую вы пытаетесь обработать, которая явно начинается с года.

roganjosh 24.04.2018 19:57

Ошибка довольно проста. Формат, который вы передали (второй аргумент), не работает для строки, которую вы анализируете (первый аргумент). Почему вы ожидали, что эта строка формата будет работать? Пожалуйста, поделитесь своим исследованием. Вы читали документацию о том, как работает datetime.strptime()?

Martijn Pieters 24.04.2018 19:59

Да, наверное, я пропустил эту часть. Спасибо, в любом случае.

Boudhayan Dev 24.04.2018 20:02
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
6
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас есть несоответствие в строковом представлении даты и времени.

Пытаться:

import datetime
print(datetime.datetime.strptime('2018-04-24T16:42:17Z', '%Y-%m-%dT%H:%M:%SZ'))

Выход:

2018-04-24 16:42:17

Другие вопросы по теме