Разобрать строки даты rfc3339 в Python?
У меня есть наборы данных, где все даты имеют следующий формат:
2012-10-09T19:00:55Z
Я хотел бы иметь возможность использовать на них такие методы, как .weekday
. Как преобразовать их в правильный формат в Python?
Ответы
Ответ 1
Вы можете использовать dateutil.parser.parse
для анализа строк в объектах datetime.
dateutil.parser.parse
попытается угадать формат вашей строки, если вы заранее знаете точный формат, тогда вы можете использовать datetime.strptime
, который вы предоставите в формате string (см. ответ Брент Уошберн).
from dateutil.parser import parse
a = "2012-10-09T19:00:55Z"
b = parse(a)
print(b.weekday())
# 1 (equal to a Tuesday)
Ответ 2
Здесь уже был дан ответ: Как преобразовать строку даты и времени ISO 8601 в объект Datetime Python?
d = datetime.datetime.strptime( "2012-10-09T19:00:55Z", "%Y-%m-%dT%H:%M:%SZ" )
d.weekday()
Ответ 3
Вы должны взглянуть на moment
который является портом Python превосходных momentjs
js lib.
Одним из его преимуществ является поддержка форматов строк ISO 8601
, а также общий формат "%":
import moment
time_string='2012-10-09T19:00:55Z'
m = moment.date(time_string, '%Y-%m-%dT%H:%M:%SZ')
print m.format('YYYY-M-D H:M')
print m.weekday
Результат:
2012-10-09 19:10
2