2016-10-14 175 views
1

我有日期時間數據的字符串列表,看起來像這樣:轉換自定義字符串,日期時間格式

list = ["2016-08-02T09:20:32.456Z", "2016-07-03T09:22:35.129Z"] 

我想這個轉換的例子格式(第一項):

"8/2/2016 9:20:32 AM" 

我嘗試這樣做:

from datetime import datetime 
for time in list: 
    date = datetime.strptime(time, '%Y %m %d %I %R') 

但返回錯誤:

ValueError: 'R' is a bad directive in format '%Y %m %d %I %R'

感謝您的幫助!

+0

您使用的日期格式與列表中的項目不匹配。 「%R」應該是什麼意思? –

+0

它應該表示24小時的持續時間:https://www.tutorialspoint.com/python/time_strptime.htm – Litwos

+0

奇怪的是,它沒有出現在官方文檔中:https://docs.python.org/3.0/ library/datetime.html#id1 –

回答

1

你必須在你的代碼的幾個問題:

  • %R似乎並沒有成爲一個correct directive(這是你的錯誤,我認爲你正在尋找%p)。
  • 在strptime格式爲您正在使用listtime作爲名稱變量,它是壞的你輸入的格式,而不是輸出
  • ]

所以,你可以爲先轉換您的時間爲正確的日期時間對象:

>>> t='2016-08-02T09:20:32.456Z' 
>>> d=datetime.strptime(t, "%Y-%m-%dT%H:%M:%S.%fZ") 
>>> d 
datetime.datetime(2016, 8, 2, 9, 20, 32, 456000) 

,然後將該對象轉換爲字符串由strftime

>>> datetime.strftime(d, "%m/%d/%Y %I:%M:%S %p") 
'08/02/2016 09:20:32 AM' 
+0

感謝您的更好的答案和解釋! – Litwos

相關問題