1

我正在使用一些稍微不同风格的 python 日期时间。问题是,我希望能够将它们等同起来,但我不能。从数据库中,我得到以下格式的日期时间:

datetime.date(2010, 11, 15)

其中,当返回时,输出:

2010-11-15

但是,就我而言,我需要将 csv 文件中的一些日期转换为日期时间。我通过使用datetime.datetime.strptime包来做到这一点。所以,我的代码如下所示:

date = '11/15/2010' #The format in the CSV file
date = date.replace('/', ' ')
date2 = datetime.datetime.strptime(date, '%m %d %Y')

但是, date2 在打印时会输出:

2010-11-15 00:00:00

True这两个日期虽然实际上是等价的,但当我在它们之间加上一个时,它不会计算==。有没有办法可以datetime.datetime.strptime省略小时、分钟、秒?我想符合第一个示例(我的数据库)中使用的格式。谢谢

4

1 回答 1

5

您正在尝试比较 adatetime和 a date。要比较它们,只需执行以下操作:

date2.date() == datetime.date(2010,11,15)

你应该没事。

更多上下文:

In [1]: import datetime

In [2]: datetime.date.today()
Out[2]: datetime.date(2013, 10, 28)

In [3]: datetime.datetime.now()
Out[3]: datetime.datetime(2013, 10, 28, 11, 5, 43, 997651)

In [4]: datetime.datetime.now() == datetime.date.today()
Out[4]: False

In [5]: datetime.datetime.now().date() == datetime.date.today()
Out[5]: True
于 2013-10-28T15:01:34.953 回答