From: Robert Hencke Date: Mon, 16 Apr 2012 01:56:37 +0000 (+1000) Subject: time: parse fractional second with single digit X-Git-Tag: go1.1rc2~3380 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c81705f13a5898e40e7e51e83086903cb55da5bf;p=gostls13.git time: parse fractional second with single digit Fixes #3487. R=golang-dev, r CC=golang-dev https://golang.org/cl/6011050 --- diff --git a/src/pkg/time/format.go b/src/pkg/time/format.go index bb32bc8431..9946890f7c 100644 --- a/src/pkg/time/format.go +++ b/src/pkg/time/format.go @@ -714,7 +714,7 @@ func Parse(layout, value string) (Time, error) { } // Special case: do we have a fractional second but no // fractional second in the format? - if len(value) > 2 && value[0] == '.' && isDigit(value, 1) { + if len(value) >= 2 && value[0] == '.' && isDigit(value, 1) { _, std, _ := nextStdChunk(layout) if len(std) > 0 && std[0] == '.' && isDigit(std, 1) { // Fractional second in the layout; proceed normally diff --git a/src/pkg/time/time_test.go b/src/pkg/time/time_test.go index fdff0ec36c..28047804e0 100644 --- a/src/pkg/time/time_test.go +++ b/src/pkg/time/time_test.go @@ -310,6 +310,7 @@ var parseTests = []ParseTest{ {"RFC1123", RFC1123, "Thu, 04 Feb 2010 21:00:57.01234 PST", true, true, 1, 5}, {"RFC1123Z", RFC1123Z, "Thu, 04 Feb 2010 21:00:57.01234 -0800", true, true, 1, 5}, {"RFC3339", RFC3339, "2010-02-04T21:00:57.012345678-08:00", true, false, 1, 9}, + {"custom: \"2006-01-02 15:04:05\"", "2006-01-02 15:04:05", "2010-02-04 21:00:57.0", false, false, 1, 0}, // Amount of white space should not matter. {"ANSIC", ANSIC, "Thu Feb 4 21:00:57 2010", false, true, 1, 0}, {"ANSIC", ANSIC, "Thu Feb 4 21:00:57 2010", false, true, 1, 0},