- Calculate Time Difference in Python
- Table of contents
- How to get the time difference between two-time in Python
- Example: Calculate Time Difference in Python
- Get time difference in hours and minutes
- Time Difference between two timestamps in Python
- About Vishal
- Related Tutorial Topics:
- Python Exercises and Quizzes
Calculate Time Difference in Python
In this article, you’ll learn how to find the time difference between two-time in Python. For example, we want to measure the execution time of a program. Here, we need to calculate the time difference between the program’s start and end times.
Another example is we may need to capture the time change between the two events. We need to subtract one time/timestamp from another to calculate the time difference between two-time.
After reading this Python article, you’ll learn:
- How to calculate the time interval between the two-time strings.
- get time difference in seconds, minutes, and hours
- Get the time difference between two timestamps in Python
Table of contents
How to get the time difference between two-time in Python
For example, you have a start time and stop time in the format of “10:33:26” ( HH:MM:SS ). The below steps show how to calculate the time difference in hours, minutes, and seconds between two-time in Python.
- Import datetime modulePython datetime module provides various functions to create and manipulate the date and time. Use the from datetime import datetime statement to import a datetime class from a datetime module.
- Convert time strings to a datetime object We have time data in a string format. Before calculating the difference, we need to convert both time strings to a datetime object.
Use the strptime(time_str, format) function to convert a time string into a datetime object as per the corresponding format. The format codes are standard directives for mentioning the string format for parsing. For example, the %H:%M:%S format codes are for hours, minutes, and seconds. - Subtract the end time from the start time To get the difference between two-time, subtract time1 from time2. A result is a timedelta object. The timedelta represents a duration which is the difference between two-time to the microsecond resolution.
- Get time difference in seconds To get a time difference in seconds, use the timedelta.total_seconds() methods.
- Get time difference in milliseconds Multiply the total seconds by 1000 to get the time difference in milliseconds.
- Get time difference in minutes Divide the seconds by 60 to get the difference in minutes.
- Get time difference in hours Divide the seconds by 3600 to get the final result in hours.
Example: Calculate Time Difference in Python
In this example, we will see how to calculate the seconds and milliseconds between two-time.
from datetime import datetime # start time start_time = "2:13:57" end_time = "11:46:38" # convert time string to datetime t1 = datetime.strptime(start_time, "%H:%M:%S") print('Start time:', t1.time()) t2 = datetime.strptime(end_time, "%H:%M:%S") print('End time:', t2.time()) # get difference delta = t2 - t1 # time difference in seconds print(f"Time difference is seconds") # time difference in milliseconds ms = delta.total_seconds() * 1000 print(f"Time difference is milliseconds")
Start time: 02:13:57 End time: 11:46:38 Time difference is 34361.0 seconds Time difference is 34361000.0 milliseconds
Get time difference in hours and minutes
Note: To calculate the time difference in minutes and hours use the below formulas.
- First, use the above example to get the time difference in seconds between two-time.
- Next, divide the seconds by 60 to get the get time difference in minutes.
- In the end, divide the seconds by 3600 (60*60) to get the time difference in hours.
Example: To get the time difference in hours and minutes between two-time.
from datetime import datetime # start time and end time start_time = datetime.strptime("2:13:57", "%H:%M:%S") end_time = datetime.strptime("11:46:38", "%H:%M:%S") # get difference delta = end_time - start_time sec = delta.total_seconds() print('difference in seconds:', sec) min = sec / 60 print('difference in minutes:', min) # get difference in hours hours = sec / (60 * 60) print('difference in hours:', hours)
difference in seconds: 34361.0 difference in minutes: 572.6833333333333 difference in hours: 9.544722222222223
Time Difference between two timestamps in Python
A timestamp is encoded information generally used in UNIX, which indicates the date and time at which a particular event has occurred.
Now, let’s see how to find the difference between the two timestamps in hours, minutes, and seconds.
- First, store the start timestamp in the ‘start’ variable and the end timestamp in the ‘end’ variable.
- Next, use the fromtimestamp() method to convert both start and end timestamps to datetime objects. We convert these timestamps to datetime because we want to subtract one timestamp from another.
- Next, subtract datetime2 from datetime1 to get the difference between two timestamps in the form of timedelta
- Next, use the total_seconds() method to get the difference in seconds.
Example 1: Difference between two timestamps in HH:MM:SS format.
from datetime import datetime # start and end timestamps start_ts = 1652426243.907874 end_ts = 1652436243.907874 # convert timestamps to datetime object dt1 = datetime.fromtimestamp(start_ts) print('Datetime Start:', dt1) dt2 = datetime.fromtimestamp(end_ts) print('Datetime End:', dt2) # Difference between two timestamps # in hours:minutes:seconds format delta = dt2 - dt1 print('Difference is:', delta)
Datetime Start: 2022-05-13 12:47:23.907874 Datetime End: 2022-05-13 15:34:03.907874 Difference is: 2:46:40
The output shows the difference between the two timestamps is 2 hours, 46 minutes, and 40 seconds.
Difference between two timestamps in seconds
Use the below example to get the total seconds between two timestamps.
from datetime import datetime # convert timestamps to datetime object start_ts_ = datetime.fromtimestamp(1652426243.907874) print('Datetime Start:', start_ts_) end_ts = datetime.fromtimestamp(1652436243.907874) print('Datetime End:', end_ts) # Difference between two timestamps in seconds delta = end_ts - start_ts_ print('Difference is seconds:', delta.total_seconds())
Datetime Start: 2022-05-13 12:47:23.907874 Datetime End: 2022-05-13 15:34:03.907874 Difference is seconds: 10000.0
Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.
About Vishal
I’m Vishal Hule, Founder of PYnative.com. I am a Python developer, and I love to write articles to help students, developers, and learners. Follow me on Twitter
Related Tutorial Topics:
Python Exercises and Quizzes
Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.
- 15+ Topic-specific Exercises and Quizzes
- Each Exercise contains 10 questions
- Each Quiz contains 12-15 MCQ