Конвертировать дату и время в UTC в другом порядке - PullRequest
0 голосов
/ 28 апреля 2018

Попытка преобразовать этот формат даты Thu Apr 26 22:51:49 PDT 2018 в UTC 2018-04-26T22:51:49Z Меня не волнует дневная часть, и ее можно исключить.

type(results[0].create_date)

возвращает

<class 'str'>

Пока я пробовал это

print (datetime.strptime((results[0].create_date), "%Y-%m-%dT%H:%M:%SZ"))

но не с этой ошибкой

ValueError: time data 'Thu Apr 26 22:51:49 PDT 2018' does not match format '%Y-%m-%dT%H:%M:%SZ'

1 Ответ

0 голосов
/ 01 мая 2018

Причина, по которой ваш код не работает, заключается в том, что строковый шаблон %Y-%m-%dT%H:%M:%SZ не соответствует представлению даты в переменной results[0].create_date. datetime.strptime пытается сопоставить данную строку с форматом, указанным вами для извлечения объекта даты и времени. В этом может помочь изменение форматера, но у вас могут возникнуть проблемы с PDT.

Я предлагаю использовать модуль dateutil.parser. Вы можете сделать следующее:

import dateutil.parser

x = parser.parse(results[0].create_date)
print x 

>>> 2018-04-26 22:51:49

Возвращает объект datetime, и вы можете отформатировать его так, как хотите, чтобы включить «T» и «Z», как вы предложили в своем вопросе.

ПРИМЕЧАНИЕ: Я сделал это, основываясь на ваших данных и желаемых результатах. Однако вы должны знать, что Thu Apr 26 22:51:49 PDT 2018 in UTC не равно 2018-04-26T22:51:49Z, поскольку PDT на 7 часов отстает от UTC.

...