21

私は2つの日時オブジェクトを持っています。1 つは日付のみを持ち、もう 1 つは日付と時刻を持ちます。日付のみを比較したい(時間は比較しない)。これは私が持っているものです:

d2=datetime.date(d1.year,d1.month,d1.day)
print d2 == d1.date

それはfalseを出力します。理由はありますか?

ありがとうございました!

4

5 に答える 5

45
d1.date() == d2.date()

Python docから:

datetime.date()同じ年、月、日の日付オブジェクトを返します。

于 2012-11-05T07:20:35.377 に答える
5

最初に 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

ケースに必要なのは、日付メソッドを括弧付きで実行していることを確認することだけでした()

于 2012-11-05T07:21:34.100 に答える
2

特定の日付と今日の日付を比較したい人向け。

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
于 2020-11-21T07:12:39.260 に答える
1
>>> datetime.date.today() == datetime.datetime.today().date()
True

詳細については

于 2012-11-05T07:20:46.953 に答える