私は、==、!=>、<などの特定の演算子で2つの文字列を比較すると理解します。日付を含むPythonの文字列の比較
私の質問は、Pythonのdatetimeオブジェクトにオブジェクトを変換するのではなく、日付のASCII値を比較するのは安全ですか?例えば
、u'2017-01-01' > u'2016-12-01' =真
私は、==、!=>、<などの特定の演算子で2つの文字列を比較すると理解します。日付を含むPythonの文字列の比較
私の質問は、Pythonのdatetimeオブジェクトにオブジェクトを変換するのではなく、日付のASCII値を比較するのは安全ですか?例えば
、u'2017-01-01' > u'2016-12-01' =真
この特定の形式では、はいです。より一般的には、より大きい単位が最初に現れる形式(例えば、何年も前の数年)で、数字が常に同じ長さで、左にゼロで埋めても安全です。
あなたは、たとえば、いくつかのトリッキーな方法を使用することができます2016-12-01
(年+ゼロ詰めヶ月+ゼロ詰め日)で、あなたが選びました字句順が時系列と同じ形式。
最も重要なデータは、最初(年)、次に月、および日です。その性質のために、より早い日付が別のものの後に来ることはできません(ここではゼロ埋めは非常に重要です)。
したがって、辞書的に比較することは安全です。
:
date1 = u'2017-01-01'
date2 = u'2016-12-01'
int(date1.replace('-','')) > int(date2.replace('-',''))
NOTICE
YOUはゼロ詰め進数としての月の日のための指令
%d
を使用する必要があります。 および%m
は、0桁の10進数として月に使用されます。
ありがとうございます。だからこのようなものを比較することは安全でしょうか? '2016-08-24 23:04:50'> = '2017-01-01'?それは偽と評価されるべきです。 –
@CodyFlynnいいえ、同じ形式でなければなりません。たとえば、 '' 2017-01-01 00:00:00 '<=' 2017-01-01''は 'False'です。これは意味をなさないものです。 –