]> Cypherpunks repositories - gostls13.git/commitdiff
time: fix parsing of minutes in time zones.
authorAdam Langley <agl@golang.org>
Mon, 19 Jul 2010 15:08:04 +0000 (11:08 -0400)
committerAdam Langley <agl@golang.org>
Mon, 19 Jul 2010 15:08:04 +0000 (11:08 -0400)
R=r
CC=golang-dev
https://golang.org/cl/1830041

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

index c04325126625ed948c412331d5f59c90dee493fc..4ea09a110171d434ea5a8ac4170cd908985c3a6f 100644 (file)
@@ -522,7 +522,7 @@ func Parse(alayout, avalue string) (*Time, os.Error) {
                        }
                        var hr, min int
                        hr, err = strconv.Atoi(hh)
-                       if err != nil {
+                       if err == nil {
                                min, err = strconv.Atoi(mm)
                        }
                        t.ZoneOffset = (hr*60 + min) * 60 // offset is in seconds
index 32bf9652ee08523b62cb522ebfd58c3a0975d69e..79933080e0e8887c7596bb4b8787eaccb00b79ad 100644 (file)
@@ -303,6 +303,17 @@ func TestMissingZone(t *testing.T) {
        }
 }
 
+func TestMinutesInTimeZone(t *testing.T) {
+       time, err := Parse(RubyDate, "Mon Jan 02 15:04:05 +0123 2006")
+       if err != nil {
+               t.Fatal("error parsing date:", err)
+       }
+       expected := (1*60 + 23) * 60
+       if time.ZoneOffset != expected {
+               t.Errorf("ZoneOffset incorrect, expected %d got %d", expected, time.ZoneOffset)
+       }
+}
+
 func BenchmarkSeconds(b *testing.B) {
        for i := 0; i < b.N; i++ {
                Seconds()