dateutil moduleには、さまざまな形式の日付文字列を解析できる日付パーサーがあります。例えば
、いくつかの日時文字列があいまいなことができることを
In [13]: import dateutil.parser as parser
In [14]: parser.parse("19970902T090000")
Out[14]: datetime.datetime(1997, 9, 2, 9, 0)
In [15]: import datetime as dt
In [16]: now = dt.datetime.now()
In [17]: now.isoformat()
Out[18]: '2012-11-06T15:08:51.393631'
In [19]: parser.parse('2012-11-06T15:08:51.393631')
Out[19]: datetime.datetime(2012, 11, 6, 15, 8, 51, 393631)
In [20]: parser.parse('November 6, 2012')
Out[20]: datetime.datetime(2012, 11, 6, 0, 0)
注:10-09-2003
は、例えば、10月9日または9月10日を意味する可能性があります。 dateutil
は、これを処理するdayfirst
とyearfirst
のようなパラメータがあります。
In [21]: parser.parse("10-09-2003")
Out[21]: datetime.datetime(2003, 10, 9, 0, 0)
In [22]: parser.parse("10-09-2003", dayfirst = True)
Out[22]: datetime.datetime(2003, 9, 10, 0, 0)
In [23]: parser.parse("10-09-03", yearfirst = True)
Out[23]: datetime.datetime(2010, 9, 3, 0, 0)
私はタイトルを更新します。問題は "datetime文字列を比較する"ではなく、 "文字列を同等の値に変換する"ことです。 –