获取给定的时区时间戳

时间:2015-07-27 11:37:43

标签: go

我正在玩时区,发现了一些奇怪的东西。

我目前处于BST时区,比GMT提前一小时。

size="1"

您会注意到时间戳是BST当前时区的时间戳。

如何获取GMT的时间戳?

http://play.golang.org/p/oq0IRYa0h7

2 个答案:

答案 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有效。