Parsing a date-time string?

Tim Williams (gmail) tdwdotnet at gmail.com
Thu Dec 22 10:38:10 EST 2005


On 21 Dec 2005 01:43:13 -0800, Tim N. van der Leeuw <
tim.leeuwvander at nl.unisys.com> wrote:
>
> Hi,
>
> I want to parse strings containing date-time, which look like the
> following:
>
> "Mon Dec 19 11:06:12:333 CET 2005"
> [snipped]
> What I want to get is some sort of sortable date; either as a number or
> (if nothing else) as a string in ISO8601 format.


Its slow in the office today, so: ......

######

from email import Utils
import time

zones = {'CET': '+0100', 'GMT': '0000', 'EST': '-0500', 'PST': '-0800'}

def get_sortable_time(a_date):
    split_date = a_date.split()

    split_time = split_date[3].split(':')          # split the time
    microsecs = float('0.'+ split_time[-1])   # get the microseconds
    split_date[3] = ':'.join(split_time[:-1])    # join time, without
microseconds

    split_date[4] = zones[split_date[4]]     # convert the timezone to
'-0800' format
    split_date = ' '.join(split_date)              # eg "Mon Dec 19 11:06:12
+0100 2005"

    gmt_time_as_num = Utils.mktime_tz(Utils.parsedate_tz(split_date) )   #
eg 1134993972.0

    return gmt_time_as_num + microsecs     # time in GMT,  eg 1134993972.33

sortable_time = get_sortable_time( "Mon Dec 19 11:06:12:333 CET 2005" )

print sortable_time          # = 1134993972.33  (in time.time() format )

print time.ctime(sortable_time)          # Mon Dec 19 12:06:12 2005

######

You could remove the 2 "microsecs" references if you don't need that level
of granularity

 HTH :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20051222/615d9f7b/attachment.html>


More information about the Python-list mailing list