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

Neil Cerutti horpner at yahoo.com
Wed Jul 25 02:28:30 CEST 2007


On 2007-07-24, Ben Finney <bignose+hates-spam at benfinney.id.au> wrote:
> 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.

Bummer. Thanks for the info. I should consult the documentation,
too, it seems. ;)

-- 
Neil Cerutti



More information about the Python-list mailing list