2016-10-27 18 views
2

私は比較的新しいPythonで、初めからきれいなコードを書いています。 "20140101"の形式で日付を "2014-01-01"にフォーマットする文字列のパーサーが必要です。私がこれを達成した方法は次の通りです:ハイフンで日付文字列を再フォーマット

def parse(date): 

    list_date = list(date) 
    list_date.insert(4,"-") 
    list_date.insert(7,"-") 
    return "".join(list_date) 

これは完璧にはうまくいきますが、きれいではありません。たぶん、他の解決策はありませんが、コードを書くためのより平凡な方法があれば、これを分かち合うと分かるでしょう!

+1

'datetime.strptime'と' datetime.strftime'のドキュメントを読もうとしましたか? –

答えて

3
def parse(date): 
    return "{}-{}-{}".format(date[:4], date[4:6], date[6:]) 

小さなエラーが発生している可能性がありますが、これを行う方法を考えると、このトリックを行う必要があります。

Pythonの文字列フォーマットの詳細については、pyformat.infoも参照してください。

また、datetimeモジュールを調べて、日付を処理するさらに多くのPythonの方法についての詳細を確認することをおすすめします。 ;)

+1

おそらくフォーマットを必要としません。 '' - '。join'も同様に動作します。 –

+0

True dat。ちょうど 'format'は、新しいユーザのためのいくつかのより直感的なオプションを与えるでしょう。 –

0

B. Ecklesのようにフォーマットを使用できます。しかし、次のようにすることもできます:

def parse(date): 
    return "%s-%s-%s" % (date[:4], date[4:6], date[6:]) 

実際には文字列の一部を置換する以外には使用しないので、フォーマットを使用する必要はありません。

関連する問題