Difference between two dates in Python

ID : 20111

viewed : 30

Tags : pythondatepython

Top 5 Answer for Difference between two dates in Python

vote vote

97

Use - to get the difference between two datetime objects and take the days member.

from datetime import datetime  def days_between(d1, d2):     d1 = datetime.strptime(d1, "%Y-%m-%d")     d2 = datetime.strptime(d2, "%Y-%m-%d")     return abs((d2 - d1).days) 
vote vote

81

Another short solution:

from datetime import date  def diff_dates(date1, date2):     return abs(date2-date1).days  def main():     d1 = date(2013,1,1)     d2 = date(2013,9,13)     result1 = diff_dates(d2, d1)     print '{} days between {} and {}'.format(result1, d1, d2)     print ("Happy programmer's day!")  main() 
vote vote

70

I tried the code posted by larsmans above but, there are a couple of problems:

1) The code as is will throw the error as mentioned by mauguerra 2) If you change the code to the following:

...     d1 = d1.strftime("%Y-%m-%d")     d2 = d2.strftime("%Y-%m-%d")     return abs((d2 - d1).days) 

This will convert your datetime objects to strings but, two things

1) Trying to do d2 - d1 will fail as you cannot use the minus operator on strings and 2) If you read the first line of the above answer it stated, you want to use the - operator on two datetime objects but, you just converted them to strings

What I found is that you literally only need the following:

import datetime  end_date = datetime.datetime.utcnow() start_date = end_date - datetime.timedelta(days=8) difference_in_days = abs((end_date - start_date).days)  print difference_in_days 
vote vote

61

Try this:

data=pd.read_csv('C:\Users\Desktop\Data Exploration.csv') data.head(5) first=data['1st Gift'] last=data['Last Gift'] maxi=data['Largest Gift'] l_1=np.mean(first)-3*np.std(first) u_1=np.mean(first)+3*np.std(first)   m=np.abs(data['1st Gift']-np.mean(data['1st Gift']))>3*np.std(data['1st Gift']) pd.value_counts(m) l=first[m] data.loc[:,'1st Gift'][m==True]=np.mean(data['1st Gift'])+3*np.std(data['1st Gift']) data['1st Gift'].head()     m=np.abs(data['Last Gift']-np.mean(data['Last Gift']))>3*np.std(data['Last Gift']) pd.value_counts(m) l=last[m] data.loc[:,'Last Gift'][m==True]=np.mean(data['Last Gift'])+3*np.std(data['Last Gift']) data['Last Gift'].head() 
vote vote

50

You can use the third-party library dateutil, which is an extension for the built-in datetime.

Parsing dates with the parser module is very straightforward:

from dateutil import parser  date1 = parser.parse('2019-08-01') date2 = parser.parse('2019-08-20')  diff = date2 - date1  print(diff) print(diff.days) 

Answer based on the one from this deleted duplicate

Top 3 video Explaining Difference between two dates in Python

Related QUESTION?