1
0
mirror of https://github.com/golang/go synced 2024-11-21 21:54:40 -07:00

time: fix windows build

TBR=brainman
CC=golang-dev
https://golang.org/cl/5447057
This commit is contained in:
Russ Cox 2011-11-30 15:45:24 -05:00
parent 06e635e46d
commit 97197a6248

View File

@ -28,12 +28,10 @@ func abbrev(name []uint16) string {
// //
// http://social.msdn.microsoft.com/Forums/eu/vclanguage/thread/a87e1d25-fb71-4fe0-ae9c-a9578c9753eb // http://social.msdn.microsoft.com/Forums/eu/vclanguage/thread/a87e1d25-fb71-4fe0-ae9c-a9578c9753eb
// http://stackoverflow.com/questions/4195948/windows-time-zone-abbreviations-in-asp-net // http://stackoverflow.com/questions/4195948/windows-time-zone-abbreviations-in-asp-net
short := make([]rune, len(name)) var short []rune
w := 0
for _, c := range name { for _, c := range name {
if 'A' <= c && c <= 'Z' { if 'A' <= c && c <= 'Z' {
short[w] = rune(c) short = append(short, rune(c))
w++
} }
} }
return string(short) return string(short)
@ -78,18 +76,23 @@ func initLocalFromTZI(i *syscall.Timezoneinformation) {
std := &l.zone[0] std := &l.zone[0]
std.name = abbrev(i.StandardName[0:]) std.name = abbrev(i.StandardName[0:])
std.offset = -int(i.StandardBias) * 60
if nzone == 1 { if nzone == 1 {
// No daylight savings. // No daylight savings.
std.offset = -int(i.Bias) * 60
l.cacheStart = -1 << 63 l.cacheStart = -1 << 63
l.cacheEnd = 1<<63 - 1 l.cacheEnd = 1<<63 - 1
l.cacheZone = std l.cacheZone = std
return return
} }
// StandardBias must be ignored if StandardDate is not set,
// so this computation is delayed until after the nzone==1
// return above.
std.offset = -int(i.Bias+i.StandardBias) * 60
dst := &l.zone[1] dst := &l.zone[1]
dst.name = abbrev(i.DaylightName[0:]) dst.name = abbrev(i.DaylightName[0:])
dst.offset = std.offset + -int(i.DaylightBias)*60 dst.offset = -int(i.Bias+i.DaylightBias) * 60
dst.isDST = true dst.isDST = true
// Arrange so that d0 is first transition date, d1 second, // Arrange so that d0 is first transition date, d1 second,