爱技术 & 爱分享
爱蛋蛋 & 爱生活

时间

这篇文章算是个科普,讲一下时间相关的知识…

首先我们来介绍一下时间相关的术语,GMT,UTC,Locale Time,Unix时间戳,原子时

GMT

GMTGreenwich Mean Time 的缩写(中文:格林尼治标准时间),是指位于英国伦敦郊区的皇家格林尼治天文台当地的标准时间,因为本初子午线被定义为通过那里的经线。

自1924年2月5日开始,格林尼治天文台负责每隔一小时向全世界发放调时信息。

理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。

但由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能与实际的太阳时有误差,最大误差达16分钟。

原因在于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治时间基于天文观测本身的缺陷,已经被原子钟报时的协调世界时(UTC)所取代。

国际原子时

国际原子时,TAI(来自法国名字Temps Atomique International)是根据以下秒的定义的一种国际参照时标, 属于国际单位制。

针对某些元素的原子能级跃迁频率有极高的稳定性,可采用基于铯原子(Cs 132.9)的能级跃迁原子秒作为时标。

1967年第13届国际计量大会上通过一项决议, 定义一秒为铯-133原子基态两个超精细能级间在零磁场下跃迁辐射9,192,631,770周所持续的时间。把在海平面实现的上述原子时秒,规定为国际单位制中的时间单位。

根据原子时秒的定义,任何原子钟在确定起始历元后,都可以提供原子时。由各实验室用足够精确的铯原子钟导出的原子时称为地方原子时。

TAI是1971年由国际时间局建立,现改为国际计量局(BIPM)的时间部门在维持,根据全球约60个实验室中的大约240台自由运转的原子钟提供的数据进行比较、综合,最后确定的原子时,称为国际原子时,简称TAI

TAI的起点是这样规定的:取1958年1月1日0时0分0秒世界时(UT)的瞬间作为同年同月同日0时0分0秒TAI。(事后发现,在该瞬间原子时与世界时的时刻之差为0.0039秒。这一差值就作为历史事实而保留下来。)

海拔高度,因为重力的不同,也会影响铯原子的速度….再详细的我就不继续讲了,毕竟我们是写代码的不是搞天文和物理的。

UTC

UTC 中文意思:协调世界时 、英语:Coordinated Universal Time,法语:Temps Universel Coordonné,由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC

UTC 是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治标准时间。

协调世界时是世界上调节时钟和时间的主要时间标准,它与0度经线的平太阳时相差不超过1秒,并不遵守夏令时。

协调世界时是最接近格林威治标准时间(GMT)的几个替代时间系统之一。

对于大多数用途来说,UTC时间被认为能与GMT时间互换,但GMT时间已不再被科学界所确定。

由于地球自转速度的降低,自转一周的时间会变长,由此GMT的秒长也会变长,而原子时秒不会有改变,所以只采用原子时的话UTC总是会超过GMT的,两者之差逐年积累。

所以便采用跳秒(闰秒)的方法使协调时与世界时的时刻相接近,其差不超过1s。它既保持时间尺度的均匀性,又能近似地反映地球自转的变化。

按国际无线电咨询委员会(CCIR)通过的关于UTC的修正案,从1972年1月1日起UTC与UT1(在UT中加入极移改正得到)之间的差值最大可以达到±0.9s。位于巴黎的国际地球自转事务中央局负责决定何时加入闰秒。一般会在每年的6月30日、12月31日的最后一秒进行调整。

所以我们可以认为UTCGMT时间一样,因为UTC会改变自身去接近GMT,使其两者差距不会超过1秒。

夏令时

夏时制,另译夏令时间(英语:Summer time),又称日光节约时制、日光节约时间(英语:Daylight saving time),是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。

一般在天亮较早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家规定不同。

中华人民共和国,当前不实行夏令时,当然历史上也实行过3次。

时区

地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早。东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算,这给人们带来不便。

为了克服时间上的混乱,1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议)上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1-12区,西1-12区。

每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5度,以东、西经180度为界。

每个时区的中央经线上的时间就是这个时区内统一采用的时间,称为区时,相邻两个时区的时间相差1小时。

例如,中国东8区的时间总比泰国东7区的时间早1小时,而比日本东9区的时间晚1小时。

因此,出国旅行的人,必须随时调整自己的手表,才能和当地时间相一致。凡向西走,每过一个时区,就要把表拨慢1小时(比如2点拨到1点);凡向东走,每过一个时区,就要把表拨快1小时(比如1点拨到2点)。

并且规定英国(格林尼治天文台旧址)为本初子午线,即零度经线。

如果时间是以协调世界时(UTC)表示,则在时间后面直接加上一个“Z”(不加空格)。“Z”是协调世界时中0时区的标志。因此,“09:30 UTC”就写作“09:30Z”或是“0930Z”“14:45:15 UTC”则为“14:45:15Z”“144515Z”

UTC时间也被叫做祖鲁时间,因为在北约音标字母中用“Zulu”表示“Z”
时区可以用UTC偏移量形式表示:±[hh]:[mm]、±[hh][mm]、或者±[hh]。如果所在区时比协调世界时早1个小时(例如柏林冬季时间),那么时区标识应为“+01:00”“+0100”或者直接写作“+01”。这也同上面的“Z”一样直接加在时间后面。

"UTC+8"(北京时区)表示当协调世界时(UTC)时间为凌晨2点的时候,当地的时间为2+8点,即早上10点。

Unix时间戳

Unix时间戳(英文为Unix epoch,Unix time, POSIX timeUnix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

Unix时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.

一个小时表示为Unix时间戳格式为:3600秒;一天表示为UNIX时间戳为86400秒,闰秒不计算。

在大多数的UNIX系统中UNIX时间戳存储为32位,这样会引发2038年问题或Y2038。

赞(1) 传送门
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。墨影 » 时间