Как преобразовать часовой пояс в формат времени и ISO 8601 в python?
Как преобразовать строку временной зоны типа 2022-06-23T05:00:00.006417+00:00Z
в формат datetime и ISO 8601?
Разве это уже не формат ISO?
Чтобы разобрать его
В любом случае, поскольку он находится в ISO, вы можете использовать datetime.fromisoformat
(docs), чтобы разобрать его, поскольку он выглядит как формат iso.
Следующие примеры из документации:
>>> from datetime import datetime
>>> datetime.fromisoformat('2011-11-04')
datetime.datetime(2011, 11, 4, 0, 0)
>>> datetime.fromisoformat('2011-11-04T00:05:23')
datetime.datetime(2011, 11, 4, 0, 5, 23)
>>> datetime.fromisoformat('2011-11-04 00:05:23.283')
datetime.datetime(2011, 11, 4, 0, 5, 23, 283000)
>>> datetime.fromisoformat('2011-11-04 00:05:23.283+00:00')
datetime.datetime(2011, 11, 4, 0, 5, 23, 283000, tzinfo=datetime.timezone.utc)
>>> datetime.fromisoformat('2011-11-04T00:05:23+04:00')
datetime.datetime(2011, 11, 4, 0, 5, 23,
tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))
Альтернативно, если это другой формат, вы можете использовать datetime.strptime
(docs), заданный некоторым форматом
Чтобы отформатировать его
Для iso-форматирования можно использовать datetime.isoformat
(docs).
Следующие примеры из документации:
>>> from datetime import datetime, timezone
>>> datetime(2019, 5, 18, 15, 17, 8, 132263).isoformat()
'2019-05-18T15:17:08.132263'
>>> datetime(2019, 5, 18, 15, 17, tzinfo=timezone.utc).isoformat()
'2019-05-18T15:17:00+00:00'
Вот функция, которая преобразует строки типа 2022-06-23T05:00:00.006417+00:00 в объекты времени даты.
import datetime
def str_to_datetime(str_time):
return datetime.datetime.strptime(str_time, '%Y-%m-%dT%H:%M:%S.%f%z')
Мне кажется, что в вашей строке есть лишняя буква Z.