2012-12-25 105 views
1

我試圖將以下日期(2012-12-25T08:52:00-05:00)轉換爲python中的日期時間對象。但是,我無法弄清楚日期的一部分是什麼引用的。我只是試圖執行以下操作:在Python中使用時區轉換ISO 8601日期格式

datetime.datetime.strptime('2012-12-25T08:52:00-05:00','%Y-%m-%dT%H:%M:%S') 

但是這出現與預期「ValueError異常:未轉換的數據仍然」。我只是想弄清楚日期的最後部分是什麼,以便我可以將該字符串轉換爲Python中適當的日期時間對象。

節日快樂!

回答

5

您的日期似乎在ISO 8601格式,我不認爲datetime處理在字符串格式的末尾的時區信息。

您可以使用pip install python-dateutil,其解析器可以返回一個datetime對象:

import dateutil.parser 
datestr = '2012-12-25T08:52:00-05:00' 
dateutil.parser.parse(datestr) 
>>> datetime.datetime(2012, 12, 25, 8, 52, tzinfo=tzoffset(None, -18000)) 
+0

+1'dateutil'是真棒 – katrielalex

+0

在UTC-系統'解析( '1998-01-01T00:00:00Z')在非UTC系統上給出datetime.datetime(1998,1,1,0,0,tzinfo = tzlocal()),它返回datetime.datetime(1998,1,1,0,0,tzinfo = tzutc( )) - 一個非常奇怪的不一致。 – ddotsenko

0

-05:00指示UTC的時區偏移量,即%z將是解析它的正確strptime參數。

如果時間是UTC,則可以使用Z(例如, 2012-12-25T08:52:00Z。不知道是否%z實際上會接受此...

相關問題