为什么计算机很多语言里的时间都是从1970年1月1日午夜开始计算?

Posted 希声lx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么计算机很多语言里的时间都是从1970年1月1日午夜开始计算?相关的知识,希望对你有一定的参考价值。

    程序语言受电脑系统影响,而现代电脑系统都受到Unix系统的广泛影响,而1970年1月1日这个时间正是Unix系统的起始时间(epoch·time)。所以每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示

 

    当年的电脑需要一个可靠的外部时钟同步源,因此早期的Unix系统用一个32位字长表示时间,以1/60秒,即1Hz为时间间隔和外部时间源同步(这道不完全是由于老美的电网频率是60Hz的缘故,当时的系统主板的晶振就是1Hz)。 结果这个时间所表示的跨度只有大约829天(约2.5年),显然不够用,因此需要一个原始的起始(〔纪〕··〔元〕)时间,由于Unix系统源自上时间69年代,第一个正式版本于1970年首次运行在PDP-11上,1971年11月UNIX Programmer‘s Manual(Unix程序员手册)首次公布,这个手册里面提及了起始时间,将它定义为【1971】年1月1日。-- 手册也承认,该起始时间大约每2.5年就要重新修正一次。

 

    之后系统时间同步间隔被修订为1秒,这样32位就可表述约136年的跨度,也正是这个期间(具体年份不祥),起始时间被修订为1970.1.1 (Unix开发者认为把之前的1971.1.1取整进位到最临近的年代起始(以每10年一个断代算),要比1971这个有点不伦不类的时间好),因此从这以后,Unix一直沿用了1970.1.1这个起始时间,而相关的程序也相应的沿用了这个时间,而深受Unix影响的后续操作系统们,如:OS/2, Windows, Mactonish, Linux。。。。都沿用了这个{事实标准}。

以上是关于为什么计算机很多语言里的时间都是从1970年1月1日午夜开始计算?的主要内容,如果未能解决你的问题,请参考以下文章

为什么计算机时间要从1970年1月1日开始算起

日期类的时间从为什么是从1970年1月1日(格林威治时间)

Unix时间戳

1970之谜

Java为什么计算时间从1970年1月1日开始

为什么编程时间从1970年1月1日開始?