为什么计算机起始时间是1970年1月1日?

互联网演进史 程序人生 2019-07-25

作为1名开发或者测试人员,unix时间戳对我们并不陌生。1970年1月1日,这个一不小心就会遇到的日期,仿佛一个彩蛋,无时无刻不在准备着带给我们“Bug的惊喜”。

为什么会出现1970年1月1日呢?其实它是时间戳为0时的格林威治时间。当出现这个日期时,很可能预示着:我们的程序也许漏掉了日期字段的读取。

为什么时间戳要从这一天开始呢?带着好奇,我们往下看。

1969年8月,贝尔实验室的程序员肯汤普逊利用妻儿离开一个月的机会,开始着手创造一个全新的革命性的操作系统,他使用B编译语言在老旧的PDP-7机器上开发出了Unix的一个版本。随后,汤普逊和同事丹尼斯里奇改进了B语言,开发出了C语言,重写了UNIX,新版于1971年发布。

为什么计算机起始时间是1970年1月1日?

那时的计算机操作系统是32位,时间用32位有符号数表示,则可表示 68 年, 

用32位无符号数表示,可表示136年。 

他们认为 以 1970年 为时间 原点 足够可以了。 因此,C 的 time 函数 就这么 定了,后来的 java 等也用它,微机也用它,工作站本来就是unix系统当然也用它。(今后若用64位机年限更没问题。) 

于是,计算机起始时间便从1970年1月1日开始了。

评论