File tree 2 files changed +12
-8
lines changed
2 files changed +12
-8
lines changed Original file line number Diff line number Diff line change @@ -27,3 +27,5 @@ require (
27
27
gopkg.in/src-d/go-git-fixtures.v3 v3.5.0
28
28
gopkg.in/warnings.v0 v0.1.2 // indirect
29
29
)
30
+
31
+ go 1.13
Original file line number Diff line number Diff line change @@ -138,17 +138,19 @@ func (s *Signature) decodeTimeAndTimeZone(b []byte) {
138
138
return
139
139
}
140
140
141
- // Include a dummy year in this time.Parse() call to avoid a bug in Go:
142
- // https://github.com/golang/go/issues/19750
143
- //
144
- // Parsing the timezone with no other details causes the tl.Location() call
145
- // below to return time.Local instead of the parsed zone in some cases
146
- tl , err := time .Parse ("2006 -0700" , "1970 " + string (b [tzStart :tzStart + timeZoneLength ]))
147
- if err != nil {
141
+ timezone := string (b [tzStart : tzStart + timeZoneLength ])
142
+ tzhours , err1 := strconv .ParseInt (timezone [0 :3 ], 10 , 64 )
143
+ tzmins , err2 := strconv .ParseInt (timezone [3 :], 10 , 64 )
144
+ if err1 != nil || err2 != nil {
148
145
return
149
146
}
147
+ if tzhours < 0 {
148
+ tzmins *= - 1
149
+ }
150
+
151
+ tz := time .FixedZone ("" , int (tzhours * 60 * 60 + tzmins * 60 ))
150
152
151
- s .When = s .When .In (tl . Location () )
153
+ s .When = s .When .In (tz )
152
154
}
153
155
154
156
func (s * Signature ) encodeTimeAndTimeZone (w io.Writer ) error {
You can’t perform that action at this time.
0 commit comments