3

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,597
  • 9
  • 40
  • 54

2 Answers2

11

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
  • 47,839
  • 14
  • 137
  • 116
3

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
  • 80,261
  • 9
  • 108
  • 134