首页 > 技术文章 > go 语言 time 时区问题 疑问

Heoric 2021-12-30 16:40 原文


func main() {
	fmt.Println("-----------------")
	t, _ := time.Parse(time.RFC3339, "1876-01-02T15:04:05Z")
	_, err := t.Local().MarshalBinary()
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(t)
	t.In(time.Local)
	fmt.Println(t)
	fmt.Println(t.Local())
	fmt.Println("-----------------")
}

结果

-----------------
Time.MarshalBinary: zone offset has fractional minute
1876-01-02 15:04:05 +0000 UTC
1876-01-02 15:04:05 +0000 UTC
1876-01-02 23:09:48 +0805 LMT
-----------------

为什么时区必须是分钟数的整数倍。
bug 见 https://github.com/golang/go/issues/39616
为什么时区设置了没起作用。
需要赋值给一个新变量。。

推荐阅读