datetime module: iso date *input* needed
Dale Strickland-Clark
dale at riverhall.NOTHANKS.co.uk
Thu Jan 30 18:51:40 EST 2003
george young <gry at ll.mit.edu> wrote:
>[python 2.3a1, linux]
>I'm using the 2.3a datetime module. The datetime.isoformat() works nicely:
> >>> import datetime
> >>> d=datetime.datetime.now()
> >>> d
> datetime.datetime(2003, 1, 30, 17, 48, 7, 848769)
> >> d.isoformat()
> '2003-01-30T17:48:07.848769'
>
>but now I need a way to make a datetime object from a date in iso format.
>I can't find a function in datetime to do this, e.g. something like:
> d=datetime.datetime.parse_iso('2003-01-30T17:48:07.848769')
>
>I thought about using the time module strptime function, but it doesn't do
>fractions of a second. I used to move date/times between python and postgres as
>epoch integers, but I hope to change to a human-readable format for better
>debugging.
>
>I'm sure I could do this somehow with mx.DateTime, but if the datetime module
>is going to be the new standard, I would like to use it in my new code...
>
>-- George
A bit of a sledgehammer but what about:
>>> import re
>>> t = '2003-01-30T17:48:07.848769'
>>> p = re.compile('[.:T-]')
>>> isobits = [int(s) for s in p.split(t)]
>>> isobits
[2003, 1, 30, 17, 48, 7, 848769]
>>> apply(datetime.datetime, isobits)
I assume this will work but I don't have 2.3a installed so no datetime
module to play with.
--
Dale Strickland-Clark
Riverhall Systems Ltd
More information about the Python-list
mailing list