【发布时间】:2021-03-16 16:25:02
【问题描述】:
如何使用正确的夏令时 UTC 偏移正确加载 EST 时区?
package main
import (
"log"
"time"
)
func main() {
log.SetFlags(log.Lshortfile | log.LstdFlags)
const newYorkTimeZone = "EST"
newYorkLoc, err := time.LoadLocation(newYorkTimeZone)
if err != nil {
log.Printf("error: %+v\n", err)
return
}
ny := time.Now().In(newYorkLoc)
log.Println("ny", ny)
log.Println("utc", ny.UTC())
}
打印:
go run main.go
2021/03/16 19:12:54 main.go:17: ny 2021-03-16 11:12:54.472058 -0500 EST
2021/03/16 19:12:54 main.go:18: utc 2021-03-16 16:12:54.472058 +0000 UTC
因此它提供了 5 小时的 UTC 时间偏移。但我预计会是 4 小时,因为今天(2021 年 3 月 16 日)NY time zone difference with UTC 根据谷歌的说法是 4 小时。
【问题讨论】:
-
“EST”表示“东部标准时间”,即定义为非夏令时。现在纽约是美国东部夏令时间 (EDT)。您是真的想要“东部标准时间”,还是“现在纽约的当地时间”?