Python - преобразование строкового представления даты в ISO 8601

StackOverflow https://stackoverflow.com/questions/4460698

  •  10-10-2019
  •  | 
  •  

Вопрос

В Python, как я могу преобразовать строку, подобную следующему:

Чт, 16 декабря 2010 12:14:05 +0000

к формату ISO 8601, сохранив часовой пояс?

Обратите внимание, что ординальная дата является строкой, а вывод тоже должен быть строкой, а не datetime или что-то вроде того.

У меня нет проблем с использованием библиотек третьих лиц.

Это было полезно?

Решение

С использованием DateUtil:

import dateutil.parser as parser
text = 'Thu, 16 Dec 2010 12:14:05 +0000'
date = parser.parse(text)
print(date.isoformat())
# 2010-12-16T12:14:05+00:00

Другие советы

Питон встроенный DateTime Пакет имеет встроенный метод для преобразования объекта DateTime в изоформу. Вот пример:

>>>from datetime import datetime
>>>date = datetime.strptime('Thu, 16 Dec 2010 12:14:05', '%a, %d %b %Y %H:%M:%S')
>>>date.isoformat()

вывод

'2010-12-16T12:14:05'

Я написал этот ответ в первую очередь для людей, которые работают в UTC и не должны беспокоиться о временных зонах. Вы можете снять последние 6 символов, чтобы получить эту строку.

Python 2 не имеет очень хорошей внутренней библиотечной поддержки для часовых поясов, для получения более подробной информации и решения, на которые вы можете ссылаться этот ответ на Stackoverflow, в котором упоминается использование сторонних библиотек, аналогичных принятым ответом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top