如何使用Golang获取UTC时间的时间戳?

46

我想将UTC时间字符串转换为Unix时间戳。 我这样做:

fmt.Printf("%s %d\n", time.Now().String(), time.Now().Unix())
fmt.Printf("%s %s\n", time.Now().UTC().String(), time.Now().UTC().Unix())

但我得到了相同的Unix时间戳1499018765

2017年07月02日20:06:05.5582802 +0200 中欧夏令时 1499018765

2017年07月02日18:06:05.791337 +0000 协调世界时 1499018765

1个回答

93

Unix() 总是返回自1970年1月1日UTC以来经过的秒数。因此,无论您给它 time.Now() 还是 time.Now().UTC(),它都是相同的UTC时间,只是在地球上不同的位置。您得到的结果是正确的。


3
请问您能否解释一下这句话的意思:“它是同一个协调世界时,只是在地球上不同的位置。” UTC并非普适的?视频中提到的问题是关于“协调世界时”(UTC)是否普遍适用的讨论。句子中的意思是,虽然世界上不同的位置可能具有不同的本地时间,但UTC时间是全球通用的,因为它基于原子钟和国际标准。也就是说,无论您身在何处,UTC时间都是相同的。 - John Balvin Arias
3
一个特定的时刻或时间点是一个独特的实例,它可以根据参考点以不同的方式表示。例如,在GMT-2时区发生在中午的某个事件会被GMT+1时区的人表示为15小时(下午3点),而在GMT+3时区的人则表示为17小时(下午5点)等。因此,对于单个时间点有不同的参考方式。希望这有所帮助。 - Zunino

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接