2017-09-25 32 views
1

私は、==、!=>、<などの特定の演算子で2つの文字列を比較すると理解します。日付を含むPythonの文字列の比較

私の質問は、Pythonのdatetimeオブジェクトにオブジェクトを変換するのではなく、日付のASCII値を比較するのは安全ですか?例えば

、u'2017-01-01' > u'2016-12-01' =真

答えて

0

この特定の形式では、はいです。より一般的には、より大きい単位が最初に現れる形式(例えば、何年も前の数年)で、数字が常に同じ長さで、左にゼロで埋めても安全です。

あなたは、たとえば、いくつかのトリッキーな方法を使用することができます
+0

ありがとうございます。だからこのようなものを比較することは安全でしょうか? '2016-08-24 23:04:50'> = '2017-01-01'?それは偽と評価されるべきです。 –

+0

@CodyFlynnいいえ、同じ形式でなければなりません。たとえば、 '' 2017-01-01 00:00:00 '<=' 2017-01-01''は 'False'です。これは意味をなさないものです。 –

2

2016-12-01(年+ゼロ詰めヶ月+ゼロ詰め日)で、あなたが選びました字句順が時系列と同じ形式。

最も重要なデータは、最初(年)、次に月、および日です。その性質のために、より早い日付が別のものの後に来ることはできません(ここではゼロ埋めは非常に重要です)。

したがって、辞書的に比較することは安全です。

0

date1 = u'2017-01-01' 
date2 = u'2016-12-01' 

int(date1.replace('-','')) > int(date2.replace('-','')) 

NOTICE

YOUはゼロ詰め進数としての月の日のための指令%dを使用する必要があります。 および%mは、0桁の10進数として月に使用されます。

関連する問題