mirror of https://go.googlesource.com/go
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
// Copyright 2018 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
//go:build js && wasm
|
|
|
|
package time
|
|
|
|
import (
|
|
"internal/itoa"
|
|
"syscall/js"
|
|
)
|
|
|
|
var platformZoneSources = []string{
|
|
"/usr/share/zoneinfo/",
|
|
"/usr/share/lib/zoneinfo/",
|
|
"/usr/lib/locale/TZ/",
|
|
}
|
|
|
|
func initLocal() {
|
|
localLoc.name = "Local"
|
|
|
|
z := zone{}
|
|
d := js.Global().Get("Date").New()
|
|
offset := d.Call("getTimezoneOffset").Int() * -1
|
|
z.offset = offset * 60
|
|
// According to https://tc39.github.io/ecma262/#sec-timezoneestring,
|
|
// the timezone name from (new Date()).toTimeString() is an implementation-dependent
|
|
// result, and in Google Chrome, it gives the fully expanded name rather than
|
|
// the abbreviation.
|
|
// Hence, we construct the name from the offset.
|
|
z.name = "UTC"
|
|
if offset < 0 {
|
|
z.name += "-"
|
|
offset *= -1
|
|
} else {
|
|
z.name += "+"
|
|
}
|
|
z.name += itoa.Itoa(offset / 60)
|
|
min := offset % 60
|
|
if min != 0 {
|
|
z.name += ":" + itoa.Itoa(min)
|
|
}
|
|
localLoc.zone = []zone{z}
|
|
}
|