2016-11-11 41 views
0

如果我有以下TIMESTRING:轉換成TIMESTRING日 - Python的

20150505 

我將如何轉換爲在Python日期May 5, 2015呢?到目前爲止,我已經試過:

from datetime import datetime 
sd = datetime.strptime('20150504', '%Y%M%d') 

但這輸出:

2015-01-04 00:05:00 

回答

4

資本M表示不分鐘每月。使用小寫m,然後調用strftime方法來重構格式:

>>> datetime.strptime('20150504', '%Y%m%d').strftime('%b %d, %Y') 
'May 04, 2015' 

您可以通過使用代替d-d指令刪除月份的零填充:

%-d日該月份是十進制數字。 (特定平臺)

對於較長的月份名稱,你可以使用指令%B代替%b獲得完整的月份名稱。


參考:

http://strftime.org/

+0

我會建議修訂的anwser,從最新刪除前導零,因爲每個操作的示例格式。 – Marcin

+0

@Marcin該指令不保證可以在所有平臺上工作 –

+0

OP沒有指定platorm,python版本或其他任何東西。所以很難對此發表評論。但仍值得注意。 – Marcin

0

如果你知道這是一個日期,而不是日期時間,或者你不知道的格式。你可以使用dateutil。

from dateutil.parser import parse 
print(parse('20150504')) 
0

這是anwser,wihout領先的零天,如OP的例子:

print(sd.strftime('%b %-d, %Y')) 
# Jan 4, 2015 # note your sd parsing is wrong. Thus Jan 
+0

不完全。嘗試一下,看看它給了什麼 –

+0

@MosesKoledoye我試過了,它的工作原理。 – Marcin

+0

它的工作原理,但**不正確** –