无法将datetime.datetime与datetime.date进行比较

loc*_*boy 55 python

我有以下代码,我得到上述错误.由于我是python的新手,因此我无法理解这里的语法以及如何修复错误:

if not start or date < start: start = date
Run Code Online (Sandbox Code Playgroud)

jua*_*ith 81

有一种datetime.date()从日期时间转换为日期的方法.

要进行相反的转换,您可以使用此功能 datetime.datetime(d.year, d.month, d.day)

  • 要做相反的转换,你可以做`datetime.datetime(d.year,d.month,d.day)` (22认同)

Imr*_*ran 10

您可以使用该datetime.datetime.combine方法将date对象与datetime对象进行比较,然后将转换后的对象与另一个datetime对象进行比较.

import datetime

dt1 = datetime.datetime(2011, 03, 03, 11, 12)
day = datetime.date(2011, 03, 02)
dt2 = datetime.datetime.combine(day, datetime.time(0, 0))

print dt1 > dt2
Run Code Online (Sandbox Code Playgroud)


Sah*_*lra 7

假设start是一个日期时间,请像这样使用它:

if not start or date < start.date(): start = date
Run Code Online (Sandbox Code Playgroud)

不认为有必要在python中将日期转换为日期时间,因为你可以做相反的事情并进行比较.

或者,您可以使用其他方法通过使用转换日期和00:00时间来创建新的日期时间.

  • 我在将`DateField`和`datetime.now()`进行比较时遇到了同样的错误,我通过在末尾简单地添加`.date()`来解决了这个问题,例如:“ datetime.now()。date()`this一个非常好的,不复杂的解决方案 (2认同)