2014-01-16 391 views
12

我想將unicode對象轉換爲datetime對象。將Unicode轉換爲datetime正確格式

我通過閱讀文檔:http://docs.python.org/2/library/time.html#time.strptime

,並試圖

datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%SZ') 

,但我得到的錯誤信息ValueError: time data '2014-01-15T01:35:30.314Z' does not match format '%Y-%m-%dT%H:%M:%SZ'

對什麼是正確的格式任何反饋?

我很欣賞時間和專業知識。

+0

你讀錯文檔。儘管'time.strptime'和'datetime.datetime.strptime'顯然是_similar_函數,它們(如2.6+以上)完全分開實現,並且具有不同的列表以便處理。 ('time'只是調用你的平臺的C庫;'datetime'手動處理額外的格式指令,即使你的平臺沒有。) – abarnert

回答

25

可以解析微秒:

from datetime import datetime 
date_posted = '2014-01-15T01:35:30.314Z' 
datetime.strptime(date_posted, '%Y-%m-%dT%H:%M:%S.%fZ') 
+0

我認爲如果平臺不僅僅是手動處理'%f'增加了3.1+,但它看起來也回到了2.6。尼斯。 – abarnert

9

一種選擇是讓dateutil做的工作:

>>> from dateutil import parser 
>>> parser.parse('2014-01-15T01:35:30.314Z') 
datetime.datetime(2014, 1, 15, 1, 35, 30, 314000, tzinfo=tzutc())