2017-02-15 51 views
-2

我有一個實際上是字符串日期格式的列值「Nov 4 2014 12:00:00 「我想把它作爲一個時間戳值,如2014-11-4 12:00:00。我怎麼能做到這一點我已經嘗試婁代碼如何將「Nov 4 2014 12:00:00」格式化爲2014-11-4 12:00:00 python

from datetime import datetime 
datetext="Nov 1 2004 12:00:00" 
datev= datetime.strptime(datetext,"%YYYY-mm-dd") 
print datev 

,並收到此錯誤

ValueError: time data 'Nov 1 2004 12:00:00' does not match format '%YYYY-mm-dd' 

看來我失去了一些東西。任何人都可以指導我

+0

我不確定爲什麼你認爲這應該起作用。 'mm'也不''有百分號。你也完全錯過了幾分鐘秒......沒有破折號。 –

+1

爲什麼不檢查表格? https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior – MYGz

回答

0

把正確的格式爲strptime以反映您的輸入:

datev = datetime.strptime(datetext,"%b %d %Y %H:%M:%S") 

here的格式化指令。 (Here爲Python 3)


如果您print創建的後續datevdatetime對象,該datetime對象的默認格式str會隨着你的要求(2014年11月4日12:00:00) 。如果您想修改打印輸出的外觀,請使用strftime,如Sardorbek的答案中所示,並再次使用您所需的格式化指令。

+0

這個解析日期。沒有完全回答問題 –

+0

@MYGz這是一個錯誤。更改爲'%H'我看到OP想要將「Nov 4 2014 12:00:00」轉換爲2014-11-4 12:00:00。 – ooknosi

0

您使用strptime錯誤https://docs.python.org/3.6/library/datetime.html#datetime.datetime.strptime

你轉換datetext後與strptime爲DateTime你需要使用strftimehttps://docs.python.org/3.6/library/datetime.html#datetime.datetime.strftime

將其轉換回字符串使用@FeebleOldMan部分答案,首先

from datetime import datetime 
datetext="Nov 1 2004 12:00:00" 
datev = datetime.strptime(datetext,"%b %d %Y %H:%M:%S") 
new_datetext = datev.strftime('%Y-%m-%d %H:%M:%S') 
print(new_datetext) 
相關問題