In article <[EMAIL PROTECTED]>, Phoe6 <[EMAIL PROTECTED]> writes: > Phoe6 wrote: > > 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? > > Well, > >>> import time > >>> timeobj = time.strptime("Thu, 01 Dec 1994 16:00:00 GMT","%a, %d %b %Y > >>> %H:%M:%S %Z") > > was easy.
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 . Connection Technologies . . Internet: -sp9804- -at - contek.com- . -- http://mail.python.org/mailman/listinfo/python-list