当前位置: 首页 > 科技观察

为什么计算机时间和很多编程语言都是从1970年1月1日开始的

时间:2023-03-20 18:42:46 科技观察

今天我们要讨论一个很有意思的事情,就是你知道为什么计算机时间和很多编程语言是从1970年1月1日开始的吗,为什么时间的起点是1970年1月1日?我想每个人都应该知道,但我想你们中的大多数人都没有想过。一起来聊聊,这是为什么呢?1.最懒的解释很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0:00是时间纪元,所以我们常说的UNIX时间戳是基于0:001970年1月1日为计时开始时间。说完这个懒人的解释,估计大家还没有明白真正的意思。让我们仔细看看。2、深入理解原来的计算机操作系统是32位的,时间也是用32位来表示的。System.out.println(Integer.MAX_VALUE);2147483647整数在JAVA中用32位表示,所以32位能表示的最大值为2147483647。另外,一年365天的总秒数为31536000,2147483647/31536000=68.1,也就是说32位能代表的最长时间是68年,从1970年开始,加上68.1,其实就是2038年1月19日03:14:07,***时间就是到达。过了这个时间点,所有32位操作系统的时间都会变成10000000000000000000000000000000,也就是1901年12月13日20:45:52,会出现时间倒退的现象,很多软件会运行不正常.至此,我觉得问题的答案已经浮出水面,那就是:因为用32位来表示时间的最大间隔是68年,而最早的UNIX操作系统考虑到了计算机世代的年龄和时间限制的应用程序。1970年1月1日作为UNIXTIME的纪元时间(开始时间)。至于时间倒退的现象,相信随着64位操作系统的产生,会逐渐解决,因为64位操作系统可以代表12月2922770265964号15:30:08,相信到地球毁灭的那一天,我们的N代子孙也不用担心跑光了,因为这个时间已经是千亿年后了。