UTC преобразование даты и времени из строки / кортежа - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть объект datetime, когда я просто его печатаю, он возвращает следующее

Thu Apr 26 22:51:49 PDT 2018

и его возврат в виде кортежа, когда я делаю print (parsedate_tz(tt))

(2018, 4, 26, 22, 51, 49, 0, 1, -1, -25200)

Что я испытываю, так это то, как преобразовать это в объект datetime, чтобы я мог применять методы времени для сложения или вычитания времени Я попытался сделать следующее, но это не удается и жалуется на формат

tt= (results[0].create_date)
datetime.strptime(tt , '%a %b %d %H:%M:%S %z %Y')

Я тоже пробовал с %Z

Я пытаюсь преобразовать его в 2018-04-26T22:51:49Z в конечном итоге

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете преобразовать 9-кортеж в datetime.datetime следующим образом (игнорируя его индекс 6-8):

import datetime
#t = parsedate_tz(tt)
t = (2018, 4, 26, 22, 51, 49, 0, 1, -1, -25200)
tz = datetime.timezone(datetime.timedelta(seconds=t[-1]))
dt = datetime.datetime(*t[0:6], tzinfo=tz)
print(dt)
# ==> 2018-04-26 22:51:49-07:00

Чтобы преобразовать его в UTC и распечатать:

dt_utc = dt.astimezone(datetime.timezone.utc)
print(dt_utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
# ==> 2018-04-27T05:51:49Z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...