преобразование часовых поясов (форматирование одного и того же экземпляра во времени) в Python 3 - PullRequest
1 голос
/ 02 июня 2019

У меня есть список временных меток, которые выглядят так:

time_list=['2016-10-01T00:00:00+01:00','2016-10-01T23:00:00+00:00','2016-10-01T22:00:00+02:00',..]

Я хотел бы применить к этому списку волшебную функцию, которая возвращает их все в +00:00 часовой пояс - это должно привести к (все метки времени должны быть корректно настроены на формат +00:00):

ret_list=['2016-10-01T23:00:00+00:00','2016-10-01T23:00:00+00:00','2016-10-01T23:00:00+00:00',..]

1 Ответ

0 голосов
/ 03 июня 2019

Сначала необходимо преобразовать строки изоформата в datetime объекты, изменить часовые пояса на UTC, а затем преобразовать в строку обратно.
Если вы используете Python 3.7, согласно this , вы можете использовать fromisoformat метод datetime, но если вы этого не сделаете, как я, я думаю, что лучший вариант предполагает использование dateutil модуль (вы должны установить его) и pytz:

import datetime as dt
from dateutil import parser
import pytz

time_list = ['2016-10-01T00:00:00+01:00','2016-10-01T23:00:00+00:00','2016-10-01T22:00:00+02:00']
utc_time_list = [parser.parse(x).astimezone(pytz.utc).isoformat() for x in time_list]

print(utc_time_list)
['2016-09-30T23:00:00+00:00', '2016-10-01T23:00:00+00:00', '2016-10-01T20:00:00+00:00']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...