如何在Python中比较日期?

2 投票
2 回答
8385 浏览
提问于 2025-04-17 04:52

我想检查一个日期是否超过了X天。请问我该怎么在Python里做到这一点呢?

我试过这样做:

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

但是我遇到了这个错误:

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

有没有什么建议可以帮我解决这个问题呢?

2 个回答

1

比较苹果和橙子总是很难!你在试图把“2010年1月12日”(一个固定的时间点)和“3小时”(一个持续的时间)进行比较,这样是没有意义的。

如果你想问的是“我的datetime是否在这个月的第n天之后”,那么你可以这样做:

my_important_date = datetime.now()

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

你不能把一个 datetime 和一个 timedelta 进行比较。timedelta 表示的是一段时间的长度,而 datetime 则表示某个具体的时间点。两个 datetime 之间的差值是一个 timedeltadatetime 之间可以互相比较,timedelta 之间也可以。

你有两个选择:

  • 从你给定的 datetime 中减去另一个 datetime,然后把得到的 timedelta 和你给的 timedelta 进行比较。
  • 通过将 timedelta 加到或减去另一个 datetime,把 timedelta 转换为 datetime,然后再把得到的 datetime 和你给的 datetime 进行比较。

撰写回答