获取给定的时区时间戳

我在玩时区并注意到一些奇怪的事情。


我目前在 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


30秒到达战场
浏览 171回答 2
2回答

不负相思意

Unix 时间是绝对的。没有“BST Unix 时间”。没有“Atlantic/Cape_Verde”Unix 时间。”只有 Unix 时间。它是自特定时刻(协调世界时 (UTC) 00:00:00,星期四,1970 年 1 月 1 日,不计闰年)以来的秒数秒)。时区与时间的表示有关,而不是时间本身。无论我们身在何处,这对你和我来说都是同一时刻(暂时把爱因斯坦放在一边)。我们只是碰巧把那一刻称为不同的东西。在 a 上设置位置*Time表明您希望如何显示时间。因此,如果“时间戳”的意思是“表示时间的字符串”,则可以使用time.Now().UTC().String().
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go