仅按日期比较日期时间对象

时间:2014-04-25 12:50:46

标签: python date python-2.7 datetime

我有两个datetime个具有相同日期,月份和年份的对象,比如说:

test_date = datetime.datetime(2014, 4, 25, 11, 57, 56)

(上面的日期创建为datetime.utcfromtimestamp(utc_timestamp))和

now_date  = datetime.datetime(2014, 4, 25, 12, 40, 19, 705355)

(上面的日期创建为datetime.now())。当我说

now_date==test_date

我应该False True。我该如何正确比较?

3 个答案:

答案 0 :(得分:3)

您目前正在比较整个datetime对象,包括时间(不匹配)。相反,只需比较date部分:

>>> now_date.date() == test_date.date()
True

答案 1 :(得分:1)

如果您只想比较日,月和年,您可以尝试:

now_date.strftime('%Y%m%d')==test_date.strftime('%Y%m%d')

使用此方法,您还可以指定其他属性。

答案 2 :(得分:1)

因为,您只想比较日期而不是时间,您需要将这些转换为datetime.date对象,这些对象会删除与时间相关的信息。

In [1]: import datetime

In [2]: test_date = datetime.datetime(2014, 4, 25, 11, 57, 56)

In [3]: now_date = datetime.datetime(2014, 4, 25, 12, 40, 19, 705355)

In [4]: now_date == test_date
Out[4]: False

In [5]: test_date = test_date.date()

In [6]: test_date
Out[6]: datetime.date(2014, 4, 25)

In [7]: now_date = now_date.date()

In [8]: now_date
Out[8]: datetime.date(2014, 4, 25)

In [9]: now_date == test_date
Out[9]: True