2016-11-11 9 views
0

私は、次の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日月は10進数です。長い月名に(プラットフォーム固有の)

、あなたは完全な月名を取得するために%bの代わりに指示%Bを使用することができます。


参考:あなたはそれが日付と日時はないと知っている、またはあなたが形式がわからない場合

http://strftime.org/

+0

私はOPのフォーマット例に従って、日付から先行ゼロを削除するには、anwserを改正提案します。 – Marcin

+0

@Marcinその指示はすべてのプラットフォームで動作することが保証されていません –

+0

OPはplatorm、pythonのバージョンなどを指定していません。だから、そのことについてコメントするのは難しい。しかし、それを認識することはまだ価値があります。 – Marcin

0

。あなたはdateutilを使うことができます。

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

これはOPの一例として、一日のためにゼロをリードするwihout、anwserです:

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

それを試して、それが何を与えるかを見てください –

+0

@MosesKoledoye私は試して、それは動作します。 – Marcin

+0

それは動作しますが、正しくありません** –