导语:您可能不会过多考虑计算机中的时钟,除非您有一个重要的截止日期,但了解计算机如何保持时间可以使您的系统和网络顺利运行。此外,计算机技术改变了我们跟踪,记录和记录时间的方式,这本身就很有趣。在这里,我们将了解计算机如何保持时间。
请原谅我是一个以Unix为中心的小人物,但互联网上很多服务器都使用Unix时间。什么是Unix时间?它实际上非常简单。它是自1970年1月1日午夜UTC以来经过的秒数。这被称为“时代”。许多Unix和Linux系统通过计算纪元秒并将它们转换为本地时间来计算时间。这样做的好处是可以很容易地计算出两个日期和时间之间的差异。如果我想知道从1970年1月1日午夜开始已经过了多少时间,现在,这只是一个简单的减法问题。在Perl编程语言必须计算纪元秒要想象任何时间的能力。
随着1970年以来的秒数出现,还会出现许多有趣的模式。维基百科有一个列表。例如,在2009年2月13日,通过的秒数达到1,234,567,890。是的,这是从一个开始的所有数字。世界各地的技术社区都举行庆祝活动。而对于那些不那么讨厌的人,不,我不会这样做。以这种方式保持时间的更严重后果是2038问题。在没有太多细节的情况下,在2038年,传递的秒数将太大而无法保存在32位有符号整数中。许多系统,包括嵌入式计算机,仍然使用32位处理器。我们仍然有足够的时间转换到64位系统或找到其他一些解决方法,但如果你还记得Y2K的崩溃,人们争先恐后地在最后一刻解决这个问题,有时候就没有意愿做关于这些事情的一些事情。
当我们完全切换到64位处理器时,在我们再次切换处理器之前,我们将持续292,277,026,596秒。然而,在那时,人类可能比他们的计算机时钟有更多紧迫的问题 - 太阳将在那时长期吞噬地球。虽然UTC或协调世界时并不严格限于计算机,但它们的时钟运行方式非常重要。它是格林威治标准时间的替代品,考虑到地球的减速。这个计算所依据的本初子午线仍然位于英格兰的格林威治天文台。为什么?这是大英帝国的延续。时区表示为本初子午线的偏移。例如,我住在太平洋时区,即UTC-8。在夏令时期间,它实际上是UTC-7。
UTC用于各种环境,以消除有关时区的模糊,包括航空,天气预报和计算。大多数机器将本地时区表示为UTC的偏移量,但互联网上的大多数服务器以UTC表示时间。您可以查看电子邮件标题以获取证明。虽然服务器使用设置为UTC的时钟,但计算机时钟有一个臭名昭着的减速习惯。拥有一堆不同步的时钟会对电子邮件等事情造成严重破坏,这取决于时机。这就是网络时间协议出现的原因。它自80年代以来一直存在,使计算机时钟与NTP完全同步。你通常不必考虑它。大多数情况下,您所要做的就是通过配置文件或控制面板在系统上启用NTP ,NTP将通过联系服务器并定期同步计算机时钟来处理其余部分。
表示时间的一种有趣方式是使用分数天。它是一种十进制时间形式,表示时间占已过去一天的百分比。例如,午夜是0.00,中午是0.50,下午6:00是0.75,依此类推。要将当前时间作为小数日,将当前分钟除以60并将其附加到小时。例如,如果它当前是下午1:24,那么24除以60是.40,给出13.40。除以24得分.56。您也可以拥有任何您想要的精度。例如,我本可以把时间写成.5583333。以这种方式保持时间的优点在于,像上面提到的纪元秒一样,计算两次之间的差异只是简单减法的问题。
总结:如果你曾经出国过,那么你现在可以用很多不同的方式来表示日期。在美国,这个月通常是第一个,因此2018年1月15日将表示为1/15/18。在其他地方,这一天是第一次,如15/1/18。与不同国家的人交流时,这可能会导致一些问题。国际标准ISO 8601试图解决其中一些问题。这很简单:YYYY-MM-DD。回到我们的例子,根据ISO 8601表示,它看起来像这样:2018-01-15。它是明确的,而且是“大端”,因为这一年是第一位的。该标准还使计算机可以相对容易地按日期对事物进行排序。其他变体附加UTC或显示一年中过去的天数。时机非常重要,对计算机来说更为重要。
举报/反馈