Find out if the date is more than 30 days

I want to know if insertion_date older than 30 days. This should detect up to the minute and second of the current time. The value in insertion_date will be dynamically inferred from the API.

The current code only detects until the day, I need accuracy to the second.

 import datetime import dateutil.parser insertion_date = dateutil.parser.parse('2017-08-30 14:25:30') right_now_30_days_ago = datetime.datetime.today() - datetime.timedelta(days=30) print right_now_30_days_ago #2017-08-31 12:18:40.040594 print insertion_date #2017-08-30 14:25:30 if insertion_date > right_now_30_days_ago: print "The insertion date is older than 30 days" else: print "The insertion date is not older than 30 days" 
+5
source share
2 answers

you need to do something like this:

 from datetime import datetime, timedelta time_between_insertion = datetime.now() - insertion_date if time_between_insertion.days>30: print "The insertion date is older than 30 days" else: print "The insertion date is not older than 30 days" 
+5
source
 from datetime import datetime, timedelta print(datetime.now()) datetime.datetime(2017, 9, 5, 7, 25, 37, 836117) print(datetime.now() - timedelta(days=30)) datetime.datetime(2017, 8, 6, 7, 25, 51, 723674) 

As you can see here, this is accurate to seconds.

The problem is in datetime.today() . You should use datetime.now() instead of datetime.today() :

 time_since_insertion = datetime.now() - insertion_date if time_since_insertion.days > 30: print("The insertion date is older than 30 days") else: print("The insertion date is not older than 30 days") 

Hope this helps!

+3
source

Source: https://habr.com/ru/post/1271518/


All Articles