Python (Scripting) - Determine Time Difference

by
Jeremy Canfield |
Updated: November 25 2024
| Python (Scripting) articles
datetime and strptime can be used to determine the difference between two dates. In this example, since start_time and end_time contain year-month-day hour:minute:second, "%Y-%m-%d %H:%M:%S" must be used in strptime.
#!/usr/bin/python3
from datetime import datetime
start_time = datetime.strptime("2023-01-01 02:00:00", "%Y-%m-%d %H:%M:%S")
end_time = datetime.strptime("2023-02-01 03:00:00", "%Y-%m-%d %H:%M:%S")
time_difference = end_time - start_time
print(f"time difference = {time_difference}")
print(f"time difference in days = {time_difference.days}")
print(f"time difference in seconds = {time_difference.total_seconds()}")
Which should return something like this.
time difference = 31 days, 1:00:00
time difference in days = 31
time difference in seconds = 2682000.0
Or more realistically, you'll probably be getting some timestamp as input or extracted from a file, and then calculating the difference as compared to the current date and time.
#!/usr/bin/python3
from datetime import datetime
input_date_time = "2023-02-09 02:00:00"
date_time_format = "%Y-%m-%d %H:%M:%S"
time_stamp = datetime.strptime(input_date_time, date_time_format)
now = datetime.strptime(datetime.now().strftime(date_time_format), date_time_format)
time_difference = now - time_stamp
print(f"time difference = {time_difference}")
print(f"time difference in seconds = {time_difference.total_seconds()}")
if time_difference.total_seconds() > 60:
print("time diference in seconds is greater than 60")
else:
print("time diference in seconds is NOT greater than 60")
Which should return something like this.
time difference = 21:57:53
time difference in seconds = 79073.0
time diference in seconds is greater than 60
I almost always wrap total_seconds() in int to return a whole number.
print(f"time difference in seconds = {int(time_difference.total_seconds())}")
Did you find this article helpful?
If so, consider buying me a coffee over at