2012-06-11 17 views
5

Mam ciąg datetime w postaci ciągu znaków, jak:parsowania ciąg w Pythonie (przekonwertować ciąg data)

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

Jak I analizować ten ciąg jako obiekt datetime.

zrobiłem następujący czytanie dokumentacji:

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

ale pojawia się błąd

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

co jest bardzo jasne.

Ale nie jestem pewien, jak czytać ten format.

Wszelkie sugestie. Dzięki

Edycja: Również muszę dodawać, wszystko zależy mi jest częścią data

Odpowiedz

23

Standardowy datetime.datetime.strptime ma problemy z definicjami strefę czasową. Użyj 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)) 

Jeśli zależy Ci tylko część daty, można spróbować go bez dateutil.parser:

>>> from datetime import datetime 
>>> datetime.strptime(data[4].partition('T')[0], '%Y-%m-%d').date() 
datetime.date(2011, 10, 23)