I have a list of timestamps in "%H:%M:%S" format. For example
09:50:08.650000
09:50:08.665000
09:50:08.820000
09:50:08.877000
09:50:09.897000
09:50:09.907000
09:50:09.953000
09:50:10.662000
09:50:10.662000
I need to compute efficiently in python the time difference in milliseconds between each line.
%H:%M:%S.%f
is the format string to be used when parsing the times. See http://docs.python.org/library/datetime.html#strftime-strptime-behavior
import datetime
times = """
09:50:08.650000
09:50:08.665000
09:50:08.820000
09:50:08.877000
09:50:09.897000
09:50:09.907000
09:50:09.953000
09:50:10.662000
09:50:10.662000
""".split()
# parse all times
times = [datetime.datetime.strptime(x, "%H:%M:%S.%f") for x in times]
for i in range(len(times) - 1):
# compute timedelta between current and next time in the list
print times[i + 1] - times[i]
The result:
0:00:00.015000
0:00:00.155000
0:00:00.057000
0:00:01.020000
0:00:00.010000
0:00:00.046000
0:00:00.709000
0:00:00
To output the difference in milliseconds:
delta = times[i + 1] - times[i]
print ((delta.days * 24 * 60 * 60 + delta.seconds) * 1000 + delta.microseconds / 1000)
Note that timedelta only stores days, seconds and microseconds internally. Other units are converted.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With