]> Cypherpunks repositories - gostls13.git/commitdiff
time: parse fractional second with single digit
authorRobert Hencke <robert.hencke@gmail.com>
Mon, 16 Apr 2012 01:56:37 +0000 (11:56 +1000)
committerRob Pike <r@golang.org>
Mon, 16 Apr 2012 01:56:37 +0000 (11:56 +1000)
Fixes #3487.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6011050

src/pkg/time/format.go
src/pkg/time/time_test.go

index bb32bc84315746cc0f9064d62cb4ef007e5b309f..9946890f7c605bd541a7438ac1b6728951e00a7d 100644 (file)
@@ -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
index fdff0ec36c18f4a6ec30e20beb97a7f64524a222..28047804e09668b4d6396fe915662a92d9a52bb5 100644 (file)
@@ -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},