]> Cypherpunks repositories - gostls13.git/commitdiff
time: Fix missing colon when formatting time zone offsets with seconds
authorJoel Stemmer <stemmertech@gmail.com>
Fri, 8 Aug 2014 19:42:20 +0000 (12:42 -0700)
committerRob Pike <r@golang.org>
Fri, 8 Aug 2014 19:42:20 +0000 (12:42 -0700)
When formatting time zone offsets with seconds using the stdISO8601Colon
and stdNumColon layouts, the colon was missing between the hour and minute
parts.

Fixes #8497.

LGTM=r
R=golang-codereviews, iant, gobot, r
CC=golang-codereviews
https://golang.org/cl/126840043

src/pkg/time/format.go
src/pkg/time/format_test.go

index 14b1250cb0c2b45b22e388c918b93c05cbb901c3..04e79f32dcd4d2a080a5c857a7711ca2598abd58 100644 (file)
@@ -556,7 +556,7 @@ func (t Time) Format(layout string) string {
                                b = append(b, '+')
                        }
                        b = appendUint(b, uint(zone/60), '0')
-                       if std == stdISO8601ColonTZ || std == stdNumColonTZ {
+                       if std == stdISO8601ColonTZ || std == stdNumColonTZ || std == stdISO8601ColonSecondsTZ || std == stdNumColonSecondsTZ {
                                b = append(b, ':')
                        }
                        b = appendUint(b, uint(zone%60), '0')
index 3bc8f42946c71287add22ffc282878b07f03c556..a7c6d55b2f01783c5b41f5a987bde7c7d1d9653b 100644 (file)
@@ -502,10 +502,11 @@ func TestParseSecondsInTimeZone(t *testing.T) {
 }
 
 func TestFormatSecondsInTimeZone(t *testing.T) {
-       d := Date(1871, 9, 17, 20, 4, 26, 0, FixedZone("LMT", -(34*60+8)))
-       timestr := d.Format("2006-01-02T15:04:05Z070000")
-       expected := "1871-09-17T20:04:26-003408"
-       if timestr != expected {
-               t.Errorf("Got %s, want %s", timestr, expected)
+       for _, test := range secondsTimeZoneOffsetTests {
+               d := Date(1871, 1, 1, 5, 33, 2, 0, FixedZone("LMT", test.expectedoffset))
+               timestr := d.Format(test.format)
+               if timestr != test.value {
+                       t.Errorf("Format = %s, want %s", timestr, test.value)
+               }
        }
 }