4

I use Python and 'dateutil' package. I have two dates 'date1' and 'date2' that are parsed from some strings:

import dateutil.parser
date1 = dateutil.parser.parse(string1,fuzzy=True)
date2 = dateutil.parser.parse(string2,fuzzy=True)

How is it possible to get absolute (non-negative) time difference between 'date1' and 'date2' in seconds? Just one number.

Konstantin
  • 2,937
  • 10
  • 41
  • 58

2 Answers2

12

dateutil.parser.parse returns datetime.datetime objects which you can subtract from each other to get a datetime.timedelta object, the difference between two times.

You can then use the total_seconds method to get the number of seconds.

diff = date2 - date1
print(diff.total_seconds())

Note that if date1 is further in the future than date2 then the total_seconds method will return a negative number.

Ffisegydd
  • 51,807
  • 15
  • 147
  • 125
4

Use the total_seconds() method on a time delta:

import dateutil.parser
from datetime import datetime

date1 = datetime.now()
date2 = dateutil.parser.parse('2013-11-12 09:00:00',fuzzy=True)

>>> print abs((date1 - date2).total_seconds())
25711599.6705
mhawke
  • 84,695
  • 9
  • 117
  • 138