2017-01-02 4 views
0

Я преобразовываю дату и время во времени. Мой формат даты и времени JSON - «2017-01-02T19:00:07.9181202Z». Я поместил мой код ниже:Невозможно разобрать strptime в python

from datetime import datetime 
date_format = datetime.strptime('2017-01-02T19:00:07.9181202Z', '%Y-%m-%dT%H:%M:%S.%fZ') 
time = date_format.strftime("%I:%M %p") 
print(time) 

сообщение об ошибке, как показано ниже:

enter image description here

После этого я прочитал этот python date-time документ. В нем говорится, что цифра микросекунды должна быть 6. Но, микросекунда даты и времени JSON имеет 7 цифр.

Сообщение от документа Python:

%f является расширение набора символов формата в C стандартной (но реализован отдельно в объектах даты и времени, и поэтому всегда доступен). При использовании с методом strptime() директива %f принимает от одной до шести цифр и нулевые прокладки справа.

Мне нужен результат, как 07:00 PM формат. Есть ли альтернативный метод?

Заранее спасибо.

ответ

1

Если вы уверены, что вход всегда будет так, что вы можете просто удалить лишнюю цифру перед передачей этой строки в strptime:

date_format = datetime.strptime('2017-01-02T19:00:07.9181202Z'[:-2] + 'Z', '%Y-%m-%dT%H:%M:%S.%fZ') 

Это грязное, но дает представление - удалить последние два символа (дополнительная цифра и «Z»), добавьте «Z».

+0

Все работает нормально. благодаря – Nisar

Смежные вопросы