3

日付に対して大なり小なりできるようにしたいと思います。どうすればそれを行うことができますか?例えば:

date1 = "20/06/2013"
date2 = "25/06/2013"
date3 = "01/07/2013"
date4 = "07/07/2013"


datelist = [date1, date2, date3]

for j in datelist:
     if j <= date4:
          print j

上記を実行すると、date1 または date2 ではなく、date3 が返されます。それが日付であることをシステムに認識させる必要があると思いますが、その方法がわかりません。誰か手を貸してくれませんか?

ありがとう

4

4 に答える 4

0

比較の問題は、文字列比較が最初の文字を最初に比較し、次に 2 番目の文字、3 番目の文字、というように比較することです。もちろん、他の回答が示唆するように、文字列を日付に変換できますが、別の解決策もあります。

日付を文字列として比較するには、「yyyy-mm-dd」のような別の形式にする必要があります。このようにして、最初に年を比較し、次に月を比較し、最後に日を比較します。

>>> d1 = '2012-10-11'
>>> d2 = '2012-10-12'
>>> if d2 > d1:
...     print('this works!')
this works!

これの利点は、日付を確実に比較しながら、文字列を日付に変換する(そしておそらく元に戻す)必要がないため、シンプルさ(少なくとも私にとっては)とパフォーマンスです。私が使用するプログラムでは、日付もよく比較します。私はファイルから日付を取得するので、最初は常に文字列であり、私のプログラムではパフォーマンスが問題になるため、通常、この方法で日付を文字列として比較するのが好きです。

もちろん、これは日付を別の形式に変換する必要があることを意味しますが、それが1回限りのアクションである場合は、努力する価値があります.. :)

于 2013-07-05T10:33:43.630 に答える