datetime.time() class - How to pass it a time string?

Ben Finney bignose+hates-spam at benfinney.id.au
Wed Jul 25 01:59:32 CEST 2007


Neil Cerutti <horpner at yahoo.com> writes:

> On 2007-07-24, Robert Dailey <rcdailey at gmail.com> wrote:
> > Hi,
> >
> > I have a string in the following format:
> >
> > "00:00:25.886411"
> >
> > I would like to pass this string into the datetime.time() class
> > and have it parse the string and use the values. However, the
> > __init__() method only takes integers (which means I'd be
> > forced to parse the string myself). Does anyone know of a way I
> > can make it use the string? Thanks.
> 
> Consult the documentation about time.strptime (to start) and then
> datetime.strptime (which refers back to the time.strptime docs,
> in a rather unfortunate manner).

Unfortunately 'strptime' also only seems to parse the components as
integers:

    >>> import datetime
    >>> time_format = "%H:%M:%S"
    >>> time_value = datetime.datetime.strptime("09:45:31.064371", time_format)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.5/_strptime.py", line 334, in strptime
        data_string[found.end():])
    ValueError: unconverted data remains: .064371

The same thing happens with 'time.strptime'. So this isn't yet a
solution for the OP.

-- 
 \              "Whatever you do will be insignificant, but it is very |
  `\                     important that you do it."  -- Mahatma Gandhi |
_o__)                                                                  |
Ben Finney



More information about the Python-list mailing list