![Unix时间戳疑问](https://linux22.com/image/122856/Unix%E6%97%B6%E9%97%B4%E6%88%B3%E7%96%91%E9%97%AE.png)
我正在转换时间戳这里,当我红色以下内容时:
还应该指出(感谢本网站访问者的评论),无论您位于地球上的哪个位置,这个时间点从技术上讲都不会改变。这对于在线和客户端动态和分布式应用程序中跟踪和排序过时信息的计算机系统非常有用。
我无法理解这到底意味着什么:unix 时间戳是绝对度量吗?
也就是说:假设我在美国有一个客户端,该客户端连接到位于俄罗斯的服务器。客户端和服务器在同一时刻的 Unix 时间戳是否完全相同?我有点困惑...
答案1
在正确配置的计算机上,unix 时间戳是 1970 年 1 月 1 日 00:00:00 UTC 之后的秒数。因此,无论用户或计算机位于哪个国家或时区,它都是相同的。
答案2
显然,服务器时钟可能不同步。
但重点是,正确的无论位置如何,任何给定时刻的时间戳值都是相同的。
您的示例不太相关,因为俄罗斯和美国之间会存在一些延迟,因此即使使用准确的时钟,您也可能会得到两个不同的时间戳。但他们不会是小时分开。它们之间的间隔(除非网络问题)只有几秒钟的时间。
答案3
时间戳 0 对应于精确的时刻(与任何时区无关),也称为 1970-01-01 00:00:00 UTC(尽管当时不存在 UTC)。
时间戳 1512148141 是在那之后的 1512148141 秒,这些秒不是原子秒,而是地球日的平均第 86400 部分。
同样,这是一个参考固定时刻的时刻,与任何时区无关。
这是芝加哥的 2017-12-01T17:09:01 UTC 或 2017-12-01T11:09:01-06:00 或卡拉奇的 2017-12-01T22:09:01+05:00,均指同一时刻。