Я рекомендую использовать python-dateutil . Его синтаксический анализатор смог проанализировать каждый формат даты, который я выбрасывал.
>>> from dateutil import parser
>>> parser.parse("Tue Jun 22 07:46:22 EST 2010")
datetime.datetime(2010, 6, 22, 7, 46, 22, tzinfo=tzlocal())
>>> parser.parse("Fri, 11 Nov 2011 03:18:09 -0400")
datetime.datetime(2011, 11, 11, 3, 18, 9, tzinfo=tzoffset(None, -14400))
>>> parser.parse("Sun")
datetime.datetime(2011, 12, 18, 0, 0)
>>> parser.parse("10-11-08")
datetime.datetime(2008, 10, 11, 0, 0)
и так далее. Не занимайтесь ерундой в формате strptime()
, просто добавьте дату, и она все сделает правильно.
Обновление : Упс. Я пропустил в вашем первоначальном вопросе, который вы упомянули, что вы использовали dateutil
, извините за это. Но я надеюсь, что этот ответ все еще полезен для других людей, которые сталкиваются с этим вопросом, когда у них есть вопросы разбора даты и они видят полезность этого модуля.