更新时间:2015-06-26 00:16:01浏览次数:1+次
然而,到今天为止,我已经结束了这一场噩梦,纯粹是虚惊一场。原来我之前的理解,都是错的。如果你也是像我之前那样理解的,请你好好往下阅读,不要再一错再错下去了。
以前的Unix计算机中存储时间,是以32位来存储的。因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),将1970年作为中间点,向左向右偏移都可以照顾到更早或者更后的时间,因此将1970年1月1日0点作为计算机表示时间的原点,从1970年1月1日开始经过的秒数存储为一个32位整数。以后计算时间就把这个时间(1970年1月1日00:00:00)当做时间的零点。这种高效简洁的时间表示法,就被称为"Unix时间纪元"。
后来的解决方案就是,计算机表示时间使用了64位来代替32位。在64位系统下,此时间最多可以表示到292,277,026,596年12月4日15时30分08秒。这个时间就可以非常长了,在目前的人类生活时间中,远远够用了。
但是,我们时间的计算由来还是由天体计算得来的,并不是计算机计算得来的。真正基准时间还是要参考GMT时间。 自1924年2月5日开始,格林尼治天文台每隔一小时会向全世界发放调时信息。而UTC是基于标准的GMT提供的准确时间。这就是说,UTC时间每个小时会根据GMT时间进行校准。原子钟时用来产生稳定的频率的时间计时,从GMT时间的基础上提供可用的每时每刻的准确时间。所以世界标准时间就采用了UTC时间。计算机只是辅助获得准确时间,存储准确时间供全世界的计算机校对使用的。即使什么时候全世界停电N个小时,再恢复电源,从GMT天文时间得到基准时间,再使用原子钟计时,还是会得到准确的时间。我们一直在误解。计算机只是给我们提供了最准确的时间罢了,计算机不是产生根本时间的源头,最根本的源头在天文里。
前面说的存储和计时的计算机,是时间服务器中存储的时间。这个服务器专门用来存储和计算精确的时间。它之所以准确,并不是说它的硬件是怎么的牛叉。我们的普通的计算机都可以准确的计时。时间服务器的时间之所以准确,是因为它每个小时会根据格林尼治天文台提供的调时信息进行时间校准。可以时刻保持准确。而我们普通的计算机则不会每隔一小时根据天文台的调时信息进行校准。自然就没有时间服务器的时间准确。并不是因为我们计算机计时不准确,而是我们计算机没有根据天文信息校准罢了。因为最准确的时间是要根据天文学来确定的,而不是计算机来确定的。这个在前面提到过。
我们购买的计算机,在出厂时,会根据UTC时间将出厂时间写入到芯片中存储起来。此值是默认的不可修改的值。这个时间芯片会有一个小电池供电,维持时间的计时,不断的累加时间,为本地提供时间。即使我们平时给电脑断电了,时间也能够持续的计时。假如我们将电源拔掉,把主板给这个时间芯片供电的电池也扣掉,那么计算机将不再计时,本地时间存储的位置的值就丢失。下次启动,系统就会读取出厂设置的默认时间为本地时间的起始时间,然后在此基础上累加。存储当前时间的芯片位置是可以修改的,因为要不断的更新时间写入芯片中,才可以提供给计算机使用。如果没有小电池,每次开机都会将本地时间起始设置为出厂时间。本地计算机如果关机状态下,电池电量不足,会导致时钟频率降低,使本地时间也变慢,就变得不准确。但是如果电量充足功能粗,不会有这个问题。如果时间不准确或者出错,可以通过联网时间矫正,从时间服务器获取准确的时间并设置本地计算机的当前时间。
相关资讯