为了账号安全,请及时绑定邮箱和手机立即绑定

获取给定的时区时间戳

获取给定的时区时间戳

Go
30秒到达战场 2021-10-25 17:03:44
我在玩时区并注意到一些奇怪的事情。我目前在 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().


查看完整回答
反对 回复 2021-10-25
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信