![为 Unix 时代而苦恼](https://linux22.com/image/44893/%E4%B8%BA%20Unix%20%E6%97%B6%E4%BB%A3%E8%80%8C%E8%8B%A6%E6%81%BC%20.png)
我无法理解到底是什么00:00:00 Coordinated Universal Time (UTC), 1 January 1970
意思。
00:00:00
根据我的理解,或者更确切地说,根据我的困惑,以下是两种可能的解释方式:
- 持续时间为零的时间点,充当日期之间的分隔符。在这样的定义下,作为一个分隔线,它不属于任何一天,也不属于任何特定的一天,而是不是由某一天而是由它所划分的两天来定义的,所以
00:00:00 1 January 1970
没有意义。在这个定义下有意义的是1969年12月31日至1970年1月1日期间00:00:00,或者简单地(因为这是多余的)1969年12月31日至1970年1月1日之间的时间点。 - 从 1970 年 1 月 1 日开始到 1 秒后结束的持续时间为 1 秒的时间间隔。根据第二个定义
00:00:00 1 January 1970
是有道理的,但是概念自此之后经过的秒数00:00:00 UTC, 1 January 1970
没有意义,因为您无法测量间隔的距离,而只能测量点的距离。除非我们真正的意思(根据这个定义)是自开始以来经过的秒数00:00:00 UTC, 1 January 1970
即自 表示的区间开始以来00:00:00 UTC, 1 January 1970
。
更新
根据我收到的答案,我认为正确的看待它的方法是零持续时间的时间点按照惯例表示它出现的第二天的最早时间点。但我并不完全相信这是一个严格的定义。这就像将 1 定义为集合 [1, 2) 中的最小数字。这是一个循环定义,因为一天的持续时间本身是使用00:00:00
时间点定义的。也许我确实读得太多了。
答案1
我可能在这里遗漏了一些东西,但我认为将时代作为参考是最有用的。这是瞬间(当你说零持续时间时,有点类似于你的第一个要点)并且仅在其他日期/时间方面有用。 EG 00:00:01 - 00:00:00 = 1 second since epoch
。
将时间视为一条数轴,我们选择在某个点放置零,因为我们需要一个全局参考。所有点都相对于该点。通常,我们认为零是指事物的数量(例如“我有零个苹果”意味着“我没有苹果”)。然而,通常将零放在方便的地方(考虑网格坐标或能量尺度)。
您所表达的问题比unix 纪元更为普遍,并且与例如0 AD/BC (CE/BCE) 相关。
答案2
你读得太多了。
该纪元是格林威治标准时间 1970 年 1 月 1 日期间的第一个时刻。由于还没有过去一整秒,时间是 00:00:00 。