关于datetime:如何在Python中比较日期?

How to compare dates in Python?

我要看看一个约会是否超过X天。我怎样才能在python中做到这一点?

我做过如下测试:

1
if datetime.date(2010, 1, 12) > datetime.timedelta(3):

我得到了错误:

1
TypeError: can't compare datetime.date to datetime.timedelta

关于如何实现这一点有什么线索吗?


你不能将datetimetimedelta进行比较。timedelta表示持续时间,datetime表示特定的时间点。两个datetime的区别是一个timedelta。日期时间彼此比较,如timedeltas。

您有两种选择:

  • 从给出的EDOCX1中减去另一个datetime,并将得到的timedelta与给出的timedelta进行比较。
  • timedelta转换为datetime,方法是将它与另一个datetime相加或相减,然后将得到的datetime与您给出的datetime进行比较。

比较苹果和桔子总是很难的!您试图将"2010年1月12日"(固定时间点)与"3小时"(持续时间)进行比较。这是没有意义的。

如果你问的是"我的datetime在月的第n天之后下降了吗",那么你可以这样做:

1
2
3
4
my_important_date = datetime.now()

if my_important_date.day > n:
    pass #do you important things