mirror of
https://github.com/golang/go
synced 2024-11-22 05:04:40 -07:00
net/mail: more liberal parsing of Date headers.
Fixes #3639. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/6243045
This commit is contained in:
parent
d6ac5b32d2
commit
132dbb61aa
@ -69,11 +69,12 @@ var dateLayouts []string
|
||||
func init() {
|
||||
// Generate layouts based on RFC 5322, section 3.3.
|
||||
|
||||
dows := [...]string{"", "Mon, "} // day-of-week
|
||||
days := [...]string{"2", "02"} // day = 1*2DIGIT
|
||||
years := [...]string{"2006", "06"} // year = 4*DIGIT / 2*DIGIT
|
||||
seconds := [...]string{":05", ""} // second
|
||||
zones := [...]string{"-0700", "MST"} // zone = (("+" / "-") 4DIGIT) / "GMT" / ...
|
||||
dows := [...]string{"", "Mon, "} // day-of-week
|
||||
days := [...]string{"2", "02"} // day = 1*2DIGIT
|
||||
years := [...]string{"2006", "06"} // year = 4*DIGIT / 2*DIGIT
|
||||
seconds := [...]string{":05", ""} // second
|
||||
// "-0700 (MST)" is not in RFC 5322, but is common.
|
||||
zones := [...]string{"-0700", "MST", "-0700 (MST)"} // zone = (("+" / "-") 4DIGIT) / "GMT" / ...
|
||||
|
||||
for _, dow := range dows {
|
||||
for _, day := range days {
|
||||
|
@ -95,6 +95,11 @@ func TestDateParsing(t *testing.T) {
|
||||
"21 Nov 97 09:55:06 GMT",
|
||||
time.Date(1997, 11, 21, 9, 55, 6, 0, time.FixedZone("GMT", 0)),
|
||||
},
|
||||
// Commonly found format not specified by RFC 5322.
|
||||
{
|
||||
"Fri, 21 Nov 1997 09:55:06 -0600 (MDT)",
|
||||
time.Date(1997, 11, 21, 9, 55, 6, 0, time.FixedZone("", -6*60*60)),
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
hdr := Header{
|
||||
|
Loading…
Reference in New Issue
Block a user