I must be doing something wrong here, any ideas?
>>> (datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16)).seconds
2098
It should be getting more than that many seconds.
I must be doing something wrong here, any ideas?
>>> (datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16)).seconds
2098
It should be getting more than that many seconds.
timedelta.seconds isn't the total number of seconds, it's the remainder in seconds after days have been accounted for. Using your example:
>>> import datetime
>>> (datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16))
datetime.timedelta(1, 2098)
That datetime.timedelta(1, 2098) means that your timedelta is 1 day, plus 2098 seconds.
What you want is something like:
>>> delta = (datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16))
>>> (delta.days * 86400) + delta.seconds
88498
timedelta.seconds gives you the seconds field of the timedelta. But it also has a days field (and a milliseconds field).
So you would want something like
delta = datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16)
delta.seconds + delta.days*86400
It's actually returning a timedelta which has a day field also i.e.
c.seconds = 2098
but
c.days = 1
datetime.datetime(2008,11,7,10,5,14)-datetime.datetime(2008,11,6,9,30,16) returns a datetime.timedelta object which has a days attribute. The difference that you are calculating is actually 1 day and 2098 seconds.