我正在玩时区,发现了一些奇怪的东西。
我目前处于BST时区,比GMT提前一小时。
size="1"
您会注意到时间戳是BST当前时区的时间戳。
如何获取GMT的时间戳?
答案 0 :(得分:8)
Unix时间是绝对的。没有“BST Unix时间”。 Unix时间没有“Atlantic / Cape_Verde”。“只有Unix时间。它是特定时刻(00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970, not counting leap seconds)以来的秒数。
时区与时间的表示相关,而不是时间本身。对于我来说,无论我们身在何处,都是同一时刻(暂时离开爱因斯坦)。我们碰巧称那个时刻是不同的事情。在*Time
上设置位置只是表明您希望如何显示时间。因此,如果“timestamp”表示“表示时间的字符串”,则可以使用time.Now().UTC().String()
获取UTC时间戳。
答案 1 :(得分:1)
请务必检查错误,我认为它会告诉您一个问题。
您检查过:http://golang.org/pkg/time/#LoadLocation
你的时区是:$ GOROOT / lib / time / zoneinfo.zip?
对我来说:
time.LoadLocation("CDT") // my time zone
time.LoadLocation("CST")
两者都会导致错误。
要获得我的时区,我必须这样做:
time.LoadLocation("America/Chicago")
确保f.Timezone有效。