Comparing RFC1123 based Dates

Discussion in 'Python' started by Phoe6, Aug 5, 2007.

  1. Phoe6

    Phoe6 Guest

    I would like to parse RFC 1123 date format and compare two dates. I
    find that
    datetime module does not specifically confirms to any RFC. Any
    suggestions as how I can handle the RFC 1123 date format using
    standard libraries before I go to re based parsing?

    Phoe6, Aug 5, 2007
    1. Advertisements

  2. Phoe6

    Phoe6 Guest

    was easy.

    Phoe6, Aug 5, 2007
    1. Advertisements

  3. Well, it might have been easy, but it's got several gotchas (in
    both Python and C), including:

    - The zone field (%Z) only corresponds for the GMT and UT timezones,
    which are obsolete (see RFC 2822). There is no support for
    the recommended +/-time-offset form.

    - The day-of-week (%a) and month (%b) fields in strptime and
    strftime are subject to the process's locale, whereas the RFC
    time forms are not. Those are hardwired to names that happen
    to correspond to the C, POSIX, and probably most of the en_*
    locales, but not to others that would be used by billions of
    people. Thus anyone using your program who doesn't happen to
    reside in one of the English-speaking countries (or does and
    is using a native locale) is likely to encounter problems when
    using your program.

    - The day-of-week field is optional.

    - Comments are allowed (but deprecated) in the whitespace fields
    of the time format. (On the other hand, I've never seen this
    is normal e-mail.)

    I find the use of strptime and strftime difficult enough to manage
    with Internet date/times that I restrict my use of them to programs
    that are limited to processing date/times. Even then, I then
    explicitly set the locale (LC_TIME) to the "C" locale. Otherwise,
    I use ad hoc code that explicitly recognizes the RFC-defined forms.
    Douglas Wells, Aug 5, 2007
  4. Phoe6

    Steve Holden Guest

    I realise you want to stick to the standard library. If you decide you
    can't however, you should definitely take a look at mx.DateTime, as the
    mx.DateTime.ARPA submodule provides exactly what you require.

    Steve Holden +1 571 484 6266 +1 800 494 3119
    Holden Web LLC/Ltd
    Skype: holdenweb
    --------------- Asciimercial ------------------
    Get on the web: Blog, lens and tag the Internet
    Many services currently offer free registration
    ----------- Thank You for Reading -------------
    Steve Holden, Aug 5, 2007
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.