Convert timedelta to total seconds Convert timedelta to total seconds python python

# Convert timedelta to total seconds

``>>> import datetime>>> datetime.timedelta(seconds=24*60*60).total_seconds()86400.0``

You have a problem one way or the other with your `datetime.datetime.fromtimestamp(time.mktime(time.gmtime()))` expression.

(1) If all you need is the difference between two instants in seconds, the very simple `time.time()` does the job.

(2) If you are using those timestamps for other purposes, you need to consider what you are doing, because the result has a big smell all over it:

`gmtime()` returns a time tuple in UTC but `mktime()` expects a time tuple in local time.

I'm in Melbourne, Australia where the standard TZ is UTC+10, but daylight saving is still in force until tomorrow morning so it's UTC+11. When I executed the following, it was 2011-04-02T20:31 local time here ... UTC was 2011-04-02T09:31

``>>> import time, datetime>>> t1 = time.gmtime()>>> t2 = time.mktime(t1)>>> t3 = datetime.datetime.fromtimestamp(t2)>>> print t01301735358.78>>> print t1time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=9, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=0) ### this is UTC>>> print t21301700663.0>>> print t32011-04-02 10:31:03 ### this is UTC+1>>> tt = time.time(); print tt1301736663.88>>> print datetime.datetime.now()2011-04-02 20:31:03.882000 ### UTC+11, my local time>>> print datetime.datetime(1970,1,1) + datetime.timedelta(seconds=tt)2011-04-02 09:31:03.880000 ### UTC>>> print time.localtime()time.struct_time(tm_year=2011, tm_mon=4, tm_mday=2, tm_hour=20, tm_min=31, tm_sec=3, tm_wday=5, tm_yday=92, tm_isdst=1) ### UTC+11, my local time``

You'll notice that t3, the result of your expression is UTC+1, which appears to be UTC + (my local DST difference) ... not very meaningful. You should consider using `datetime.datetime.utcnow()` which won't jump by an hour when DST goes on/off and may give you more precision than `time.time()`

More compact way to get the difference between two datetime objects and then convert the difference into seconds is shown below (Python 3x):

``from datetime import datetime        time1 = datetime.strftime('18 01 2021', '%d %m %Y')    time2 = datetime.strftime('19 01 2021', '%d %m %Y')difference = time2 - time1difference_in_seconds = difference.total_seconds()`` 