问题
I need to see if a date has more than X days. How can I do this in Python?
I have tested something like:
if datetime.date(2010, 1, 12) > datetime.timedelta(3):
I got the error:
TypeError: can't compare datetime.date to datetime.timedelta
Any clue on how to achieve this?
回答1:
You can't compare a datetime to a timedelta. A timedelta represents a duration, a datetime represents a specific point in time. The difference of two datetimes is a timedelta. Datetimes are comparable with each other, as are timedeltas.
You have 2 options:
- Subtract another
datetimefrom the one you've given, and compare the resultingtimedeltawith thetimedeltayou've also given. - Convert the
timedeltato adatetimeby adding or subtracting it to anotherdatetime, and then compare the resultingdatetimewith thedatetimeyou've given.
回答2:
Comparing apples and oranges is always very hard! You are trying to compare "January 12, 2010" (a fixed point in time) with "3 hours" (a duration). There is no sense in this.
If what you are asking is "does my datetime fall after the nth day of the month" then you can do :
my_important_date = datetime.now()
if my_important_date.day > n:
pass #do you important things
来源:https://stackoverflow.com/questions/7873013/how-to-compare-dates-in-python