2014-06-26 39 views
1

如何將我這個時間戳「20141031131429Z」轉換爲2014年10月31日在python如何unix時間戳以Z轉換爲日期時間蟒蛇

>>>datetime.datetime.strptime("20141031131429Z", "%Y%m%d%H%M%S%Z") 

上面的代碼給了我如下所示的錯誤:

ValueError: time data '20141031131429Z' does not match format '%Y%m%d%H%M%S%Z' 

回答

2

Z的前部拆下%

d = datetime.datetime.strptime("20141031131429Z", "%Y%m%d%H%M%SZ") 
print(d.strftime("%d %B %Y")) 

輸出:

31 October 2014 

設置strftime() and strptime() behavior的文檔。

+0

我可以把它作爲2014年10月31日 – Bamaboy

+0

是的,我已經編輯我的答案。 –

+0

嘿我也得到了類似的錯誤 - 時間數據'2014-10-31T20:02:36.622Z'與格式不匹配'%Y-%m-%d-%H:%M:%SZ' I我無法弄清楚「T20:02:36.622Z」的一部分,早些時候它給了我一個錯誤,其中我意識到它需要5個參數,我只給出了3個。 cDate = re.sub(r'[^ \ x00- \ x7f]',r'',story.CreationDate) date_object = datetime.strptime(cDate,'%Y-%m-%d-%H:%M:%S.Z') – voraD

0

這不是一個unix時間戳(在strftime/strptime中用%s解析) - 它看起來像iCalendar form #2(RFC 2445)。像iCalendar這樣的模塊可能會幫助您解析,而不必硬編碼使用哪種表單。

一旦你有一個DateTime對象,它可以被用來獲取任何其他格式:

>>> dt=datetime.datetime.strptime("20141031131429Z", "%Y%m%d%H%M%SZ") 
>>> dt.strftime('%d %B %Y') 
'31 October 2014' 
>>> dt.strftime('%x') 
'10/31/14'