From: Marvin Stenger Date: Wed, 2 Sep 2015 22:39:53 +0000 (+0200) Subject: time: fixed handling of "5" in Format's layout string X-Git-Tag: go1.6beta1~1131 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c12e38aa043ba95fa4dc212f7755e5e03b316238;p=gostls13.git time: fixed handling of "5" in Format's layout string Fixes #12440 Change-Id: Iead77fe34d986cfd5c16bac671fe13c8d012a754 Reviewed-on: https://go-review.googlesource.com/14178 Reviewed-by: Rob Pike --- diff --git a/src/time/format.go b/src/time/format.go index 873d3ffde9..6cf7946711 100644 --- a/src/time/format.go +++ b/src/time/format.go @@ -518,7 +518,7 @@ func (t Time) AppendFormat(b []byte, layout string) []byte { case stdZeroMinute: b = appendInt(b, min, 2) case stdSecond: - b = appendInt(b, sec, 2) + b = appendInt(b, sec, 0) case stdZeroSecond: b = appendInt(b, sec, 2) case stdPM: diff --git a/src/time/format_test.go b/src/time/format_test.go index ecc5c8f28a..d44347aed5 100644 --- a/src/time/format_test.go +++ b/src/time/format_test.go @@ -74,6 +74,16 @@ func TestFormat(t *testing.T) { } } +// issue 12440. +func TestFormatSingleDigits(t *testing.T) { + time := Date(2001, 2, 3, 4, 5, 6, 700000000, UTC) + test := FormatTest{"single digit format", "3:4:5", "4:5:6"} + result := time.Format(test.format) + if result != test.result { + t.Errorf("%s expected %q got %q", test.name, test.result, result) + } +} + func TestFormatShortYear(t *testing.T) { years := []int{ -100001, -100000, -99999,