我有两个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
。我该如何正确比较?
答案 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