我在玩时区并注意到一些奇怪的事情。我目前在 BST 时区,比格林威治标准时间早一个小时。 now := time.Now() location, _ := time.LoadLocation("Atlantic/Cape_Verde") timeAtZone := now.In(location) fmt.Println(timeAtZone) timestamp = timeAtZone.Unix() fmt.Println(timestamp) fmt.Println(now.Add(-time.Hour).UTC().Unix()) fmt.Println(now.UTC().Unix())您会注意到时间戳是我当前时区的 BST 时间戳。我如何获得格林威治标准时间的时间戳???http://play.golang.org/p/oq0IRYa0h7
2 回答
不负相思意
TA贡献1777条经验 获得超10个赞
Unix 时间是绝对的。没有“BST Unix 时间”。没有“Atlantic/Cape_Verde”Unix 时间。”只有 Unix 时间。它是自特定时刻(协调世界时 (UTC) 00:00:00,星期四,1970 年 1 月 1 日,不计闰年)以来的秒数秒)。
时区与时间的表示有关,而不是时间本身。无论我们身在何处,这对你和我来说都是同一时刻(暂时把爱因斯坦放在一边)。我们只是碰巧把那一刻称为不同的东西。在 a 上设置位置*Time
表明您希望如何显示时间。因此,如果“时间戳”的意思是“表示时间的字符串”,则可以使用time.Now().UTC().String()
.
- 2 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消