AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

dateutil で 曖昧な日付をパースする

pythondateutil ライブラリ。標準の datetime.strptime で日付を構文解析するよりも手軽にパースすることができます。2.x/3.x 両対応。

今回、このようなフォーマットの日付をパースしたのですが、表記が曖昧なので、結果が揺れてしまいました。

In [1]: import dateutil.parser

In [11]: dateutil.parser.parse('30/09/2015')
Out[11]: datetime.datetime(2015, 9, 30, 0, 0)

In [12]: dateutil.parser.parse('28/09/2015')
Out[12]: datetime.datetime(2015, 9, 28, 0, 0)

In [13]: dateutil.parser.parse('11/10/2015')
Out[13]: datetime.datetime(2015, 11, 10, 0, 0)

そこで dayfirst=True をつけて明示化して解決。

In [14]: dateutil.parser.parse('11/10/2015', dayfirst=True)
Out[14]: datetime.datetime(2015, 10, 11, 0, 0)

ちなみに daifirst, yearfirst ともにデフォルトは False らしいです。

ちょっとした課題は、賢人が過去に考えて解決策だしてくれてるんだと実感した次第です。