私は2つの日時オブジェクトを持っています。1 つは日付のみを持ち、もう 1 つは日付と時刻を持ちます。日付のみを比較したい(時間は比較しない)。これは私が持っているものです:
d2=datetime.date(d1.year,d1.month,d1.day)
print d2 == d1.date
それはfalseを出力します。理由はありますか?
ありがとうございました!
最初に datetime オブジェクトを date オブジェクトにキャストします。それらが同じタイプになると、比較は理にかなっています。
if d2.date() == d1.date():
print "same date"
else:
print "different date"
上記の場合:-
In [29]: d2
Out[29]: datetime.date(2012, 1, 19)
In [30]: d1
Out[30]: datetime.datetime(2012, 1, 19, 0, 0)
そう、
In [31]: print d2 == d1.date()
True
ケースに必要なのは、日付メソッドを括弧付きで実行していることを確認することだけでした()
。
特定の日付と今日の日付を比較したい人向け。
import datetime
# Set specific date
date = '2020-11-21'
# Cast specific date to Date Python Object
date = datetime.datetime.strptime(date, '%Y-%m-%d').date()
# Get today date with Date Python Object
today = datetime.date.today()
# Compare the date
isYesterday = date < today
isToday = date == today
isTomorrow = date > today
>>> datetime.date.today() == datetime.datetime.today().date()
True