преобразовать строку в объект даты и времени - PullRequest
10 голосов
/ 26 октября 2010

Я хотел бы преобразовать эту строку в объект datetime:

Wed Oct 20 16:35:44 +0000 2010

Есть ли простой способ сделать это? Или мне нужно написать RE, чтобы разобрать элементы, преобразовать октябрь в 10 и так далее?

EDIT: Время отлично. Однако с

datetime.strptime(date_str, "%a %b %d %H:%M:%S %z %Y")

Я получаю

ValueError: 'z' is a bad directive in format '%a %b %d %H:%M:%S %z %Y'

хотя% z кажется правильным.

EDIT2: Похоже, тег% z не поддерживается. Смотри http://bugs.python.org/issue6641. Я справился с этим, используя объект timedelta, чтобы соответствующим образом изменить время.

Ответы [ 5 ]

28 голосов
/ 26 октября 2010

RE не требуется.Попробуйте это:

from dateutil import parser

yourDate = parser.parse(yourString)  

для "Ср 20 октября 16:35:44 +0000 2010" возвращается datetime.datetime(2010, 10, 20, 16, 35, 44, tzinfo=tzutc())

2 голосов
/ 26 октября 2010

В зависимости от того, где находится эта строка, вы можете использовать datetime.strptime для ее анализа.Единственная проблема состоит в том, что strptime опирается на некоторые специфичные для платформы вещи, поэтому, если эта строка должна быть в состоянии прийти из произвольных других систем, и все дни и месяцы не определены точно так же (июнь или июнь), вы можетеесть проблемы.

2 голосов
/ 26 октября 2010

Я уверен, что вы можете сделать это, используя datetime.strptime.

Из документов:

datetime.strptime (date_string, format)

Возвращает дату и время, соответствующие строке date_string, проанализированные в соответствии с форматом.Это эквивалентно datetime (* (time.strptime (date_string, format) [0: 6])).ValueError вызывается, если date_string и формат не могут быть проанализированы time.strptime () или если он возвращает значение, которое не является кортежем времени.

2 голосов
/ 26 октября 2010
1 голос
/ 26 октября 2010

time.strptime должен это сделать: http://docs.python.org/library/time.html?highlight=time#time.strptime

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