如何在Python中比较日期?
我想检查一个日期是否超过了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
之间的差值是一个 timedelta
。datetime
之间可以互相比较,timedelta
之间也可以。
你有两个选择:
- 从你给定的
datetime
中减去另一个datetime
,然后把得到的timedelta
和你给的timedelta
进行比较。 - 通过将
timedelta
加到或减去另一个datetime
,把timedelta
转换为datetime
,然后再把得到的datetime
和你给的datetime
进行比较。