homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author karlcow
Recipients BreamoreBoy, ajaksu2, anthonybaxter, barry, dalke, gaul, karlcow, l0nwlf, r.david.murray
Date 2013年02月25日.20:07:21
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1361822842.01.0.634263636881.issue747320@psf.upfronthosting.co.za>
In-reply-to
Content
http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-22#section-7.1.1
quoting from HTTP 1.1 bis
 Prior to 1995, there were three different formats commonly used by
 servers to communicate timestamps. For compatibility with old
 implementations, all three are defined here. The preferred format is
 a fixed-length and single-zone subset of the date and time
 specification used by the Internet Message Format [RFC5322].
 HTTP-date = IMF-fixdate / obs-date
 An example of the preferred format is
 1994年11月06日 08:49:37 GMT ; IMF-fixdate
 Examples of the two obsolete formats are
 Sunday, 06-Nov-94 08:49:37 GMT ; obsolete RFC 850 format
 Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format
 A recipient that parses a timestamp value in an HTTP header field
 MUST accept all three formats. A sender MUST generate the IMF-
 fixdate format when sending an HTTP-date value in a header field.
What http.server.BaseHTTPRequestHandler.date_time_string is currently doing
>>> import time
>>> timestamp = time.time()
>>> weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
>>> monthname = [None,'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
>>> year, month, day, hh, mm, ss, wd, y, z = time.gmtime(timestamp)
>>> s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % (weekdayname[wd],day, monthname[month], year,hh, mm, ss)
>>> s
'Mon, 25 Feb 2013 19:26:34 GMT'
what email.utils.formatdate is doing:
>>> import email.utils
>>> email.utils.formatdate(timeval=None,localtime=False, usegmt=True)
'Mon, 25 Feb 2013 19:40:04 GMT'
>>> import time
>>> ts = time.time()
>>> email.utils.formatdate(timeval=ts,localtime=False, usegmt=True)
'Mon, 25 Feb 2013 19:51:50 GMT'
I createad a patch 
s = email.utils.formatdate(timestamp, False, True)
I didn't touch the log method which has a different format which is anyway not compatible with email.utils.
History
Date User Action Args
2013年02月25日 20:07:22karlcowsetrecipients: + karlcow, barry, anthonybaxter, gaul, dalke, ajaksu2, r.david.murray, l0nwlf, BreamoreBoy
2013年02月25日 20:07:22karlcowsetmessageid: <1361822842.01.0.634263636881.issue747320@psf.upfronthosting.co.za>
2013年02月25日 20:07:21karlcowlinkissue747320 messages
2013年02月25日 20:07:21karlcowcreate

AltStyle によって変換されたページ (->オリジナル) /