2012-06-11 2 views
5

У меня есть строка DATETIME в виде строки, как:разбора строка в Python (преобразовать строку в дату)

2011-10-23T08:00:00-07:00 

Как я разобрать эту строку в качестве объекта даты и времени.

я сделал следующее чтение документации:

date = datetime.strptime(data[4],"%Y-%m-%d%Z") 

, но я получаю ошибку

ValueError: time data '2011-10-23T08:00:00-07:00' does not match format '%Y-%m-%d%Z' 

, который очень ясно.

Но я не уверен, как читать этот формат.

Любые предложения. Благодаря

Edit: Кроме того, я должен добавить, мне все равно о дата часть

ответ

23

Standard datetime.datetime.strptime имеет проблемы с определениями часовых поясов. Используйте dateutil.parser

>>> from dateutil import parser 
>>> parser.parse("2011-10-23T08:00:00-07:00") 
datetime.datetime(2011, 10, 23, 8, 0, tzinfo=tzoffset(None, -25200)) 

Если вы заботитесь о только части даты, вы можете попробовать его без dateutil.parser:

>>> from datetime import datetime 
>>> datetime.strptime(data[4].partition('T')[0], '%Y-%m-%d').date() 
datetime.date(2011, 10, 23) 
Смежные вопросы