如何比较python中的日期(而不是时间)

Dao*_*Lam 9 python datetime date

我有2个日期时间对象.一个只有日期,另一个有日期和时间.我想比较日期(而不是时间).这就是我所拥有的:

d2=datetime.date(d1.year,d1.month,d1.day)
print d2 == d1.date
Run Code Online (Sandbox Code Playgroud)

它打印出来是假的.知道为什么吗?

谢谢!

Nic*_*las 24

d1.date() == d2.date()
Run Code Online (Sandbox Code Playgroud)

从Python 文档:

datetime.date() 返回具有相同年,月和日的日期对象.


Cal*_*eng 5

首先将日期时间对象转换为日期对象。一旦它们属于同一类型,比较就有意义了。

if d2.date() == d1.date():
    print "same date" 
else:
    print "different date"
Run Code Online (Sandbox Code Playgroud)

对于您的上述情况:-

In [29]: d2
Out[29]: datetime.date(2012, 1, 19)

In [30]: d1
Out[30]: datetime.datetime(2012, 1, 19, 0, 0)
Run Code Online (Sandbox Code Playgroud)

所以,

In [31]: print d2 == d1.date()
True
Run Code Online (Sandbox Code Playgroud)

对于您的情况,您所需要的只是确保您正在执行带有括号的日期方法()