I am able to parse strings containing date/time with time.strptime
>>> import time >>> time.strptime('30/03/09 16:31:32', '%d/%m/%y %H:%M:%S') (2009, 3, 30, 16, 31, 32, 0, 89, -1)
How can I parse a time string that contains milliseconds?
>>> time.strptime('30/03/09 16:31:32.123', '%d/%m/%y %H:%M:%S') Traceback (most recent call last): File '<stdin>', line 1, in <module> File '/usr/lib/python2.5/_strptime.py', line 333, in strptime data_string[found.end():]) ValueError: unconverted data remains: .123
Python 2.6 added a new strftime/strptime macro
%f. The docs are a bit misleading as they only mention microseconds, but%factually parses any decimal fraction of seconds with up to 6 digits, meaning it also works for milliseconds or even centiseconds or deciseconds.However, time.struct_time doesn’t actually store milliseconds/microseconds. You’re better off using
datetime, like this:As you can see,
.123is correctly interpreted as123 000microseconds.