This article will discuss how we can convert the datetime module’s timedelta object to total milliseconds in python.
Background:
In Python’s datetime module, the datetime.timedelta represents the duration between two dates, time, or datetime objects. For example, we have two timestamps as datetime objects,
from datetime import datetime timestamp_1 = datetime(2019, 6, 3, 8, 12, 16, 100000) timestamp_2 = datetime(2019, 6, 3, 9, 17, 11, 200002)
If you want the difference between these two timestamps, you can subtract these two datetime objects. It will give a timedelta object i.e.
# Get different between two datetime as timedelta object. diff = (timestamp_2 - timestamp_1) print(diff) print( type(diff) )
Output:
1:04:55.100002 <class 'datetime.timedelta'>
This timedelta object contains the time difference between two datetime objects. But if you print it, then you will get the absolute difference between two datetimes in hh:mm::ss.ffffff format. What if, you want the complete duration in total milliseconds only? For that we can convert this timedelta object to milliseconds only. Let’s see how to do that,
Convert timedelta to milliseconds in python
The timedelta object represents a duration between to timestamps. It has a function total_seconds(), which gives the total seconds in the duration pointed by timedelta object. We can multiply it by 1000, to get the complete duration in milliseconds. For example,
# Convert timedelta object to Milliseconds diff_in_milliseconds = diff.total_seconds() * 1000 print("Total Time Difference : {} Milliseconds".format(diff_in_milliseconds) )
Output:
Total Time Difference : 3895100.0020000003 Milliseconds
We got the difference between two timestamps in milliseconds only by converting timedelta to milliseconds.
But we got the milliseconds with decimal part too. If you interested in only approx. absolute number, then you can round off the value i.e.
# Convert timedelta object to Milliseconds diff_in_milliseconds = diff.total_seconds() * 1000 # Round of the Milliseconds value diff_in_milliseconds = round(diff_in_milliseconds) print("Total Time Difference : {} Milliseconds".format(diff_in_milliseconds) )
Output:
Total Time Difference : 3895100 Milliseconds
The complete working example is as follows,
from datetime import datetime timestamp_1 = datetime(2019, 6, 3, 8, 12, 16, 100000) timestamp_2 = datetime(2019, 6, 3, 9, 17, 11, 200002) # Get different between two datetime as timedelta object. diff = (timestamp_2 - timestamp_1) print(diff) print( type(diff) ) # Convert timedelta object to Milliseconds diff_in_milliseconds = diff.total_seconds() * 1000 print("Total Time Difference : {} Milliseconds".format(diff_in_milliseconds) ) # Round of the Milliseconds value diff_in_milliseconds = round(diff_in_milliseconds) print("Total Time Difference : {} Milliseconds".format(diff_in_milliseconds) )
Output:
1:04:55.100002 <class 'datetime.timedelta'> Total Time Difference : 3895100.0020000003 Milliseconds Total Time Difference : 3895100 Milliseconds
Summary:
Today we learned that how we can convert datetime.timedelta to milliseconds in python.