2012-06-11 319 views
5

我有一個字符串形式的日期時間字符串:解析日期字符串(字符串轉換爲日期)

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

我如何解析這個字符串作爲DateTime對象。

我做了以下閱讀文檔:

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' 

,這是非常清楚的。

但我不知道如何閱讀這種格式。

有任何建議。 感謝

編輯:另外,我必須補充,我所關心的是日期部分

回答

23

標準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)