秒是一个时间基本单位。
一天24小时,一小时60分,一分钟60秒,这来自于秒的定义——1秒的时间间隔为平均太阳日[1]的1⁄86400。
到了20世纪中叶,人们发现地球自转的时间并不是恒定的,于是在1956年改以地球绕太阳轨道公转一周的时间来定义秒[2]。
1967年,改用原子共振频率来定义秒[3],并在此基础上制作出了原子钟。
目前,原子钟是世界上已知最准确的时间测量和频率标准。
格林尼治平时(Greenwich Mean Time,GMT),又称为格林尼治标准时间。
格林尼治平时的正午是指当平太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。
自1924年2月5日开始,格林尼治天文台负责每隔一小时向全世界发放调时信息。
由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治平时基于天文观测本身的缺陷,已经被原子钟报时的协调世界时(UTC)所取代。
UT时间在http协议中规定,所有时间都要转换为GMT时间[4],例如
date: Sat, 19 May 2018 17:17:24 GMT
世界时(Universal Time,UT),是一种以格林尼治子夜起算的平太阳时。
由于1925年以前人们在天文观测中,常常把每天的起始(0时)定为正午,而不是通常民用的午夜,给格林尼治平时的意义造成含糊,人们使用世界时一词来明确表示每天从午夜开始的格林尼治平时。
时区是指地球上的某一个区域使用同一个时间定义。
GMT时间或者UT时间,都是表示地球自转速率的一种形式。
从太阳升起到太阳落下,时刻从0到24变化。
这样,不同经度的地方时间自然会不相同。
为了解决这个问题,人们把地球按经度划分为不同的区域,每个区域内使用同一个时间定义,相邻的区域时间差为1个小时。
时区又分为理论时区和法定时区。
按经度,每15°为一个时区,将地球划分为24个时区,以本初子午线为中心,向东西两侧各延伸7.5°的区域为0时区。
法定时区是在理论时区的基础上,根据某些地区的国界线做了调整之后的时区。
为实际使用的时区。
例如中国横跨东五区到东九区五个时区,但统一使用东八区时间(北京时间)。
某个地方的时刻与0时区的时刻差称为时差,时差东正西负。
以本初子午线为中心,每向东一跨过一个时区,时刻增加一个小时,每向西跨过一个时区,时刻减少一个小时。
国际日期变更线如何理解向东时区增加
由于地球是自西向东转,在地球的某一个地方观察,东边的时间比西边的时间早(东边的人们先看到太阳升起)。
想象一下某一个时刻,太阳在你的正上空,此时你所在的地点的时间为正午12点。
这时住在你东边的人们,他们看到太阳已经在西边了,他们的时刻是下午,所以往东,时刻增加。
大体以180度经线为日界线。
当自西向东穿过日期变更线时,日期需要减少一天,反之,日期增加一天。
协调世界时(Coordinated Universal Time)。
是主要的世界时间标准,以原子钟所定义的秒长为基础,在时刻上尽量接近GMT时间。
UTC时间认为一个太阳日总是86400秒。
在大多数情况下,UTC时间能与GMT时间互换。
本初子午线所在的时区的时间后面加上字符Z
,表示UTC时间。
Z
即为0时区的标志,读做Zulu
。
例如09:30 UTC
就写作0930Z
,14:45:15 UTC
则为14:45:15Z
或144515Z
。
UTC偏移量用以下形式表示: ±[hh]:[mm]
、±[hh][mm]
、或者±[hh]
。
例如UTC时间为09:30z
,此时北京时间就是1730 +0800
,纽约时间是0430 -0500
。
UTC时间表示的格式一般为Sat, 20 May 2018 12:45:57 +0800
表示东八区(北京时间)2018年5月20号 12:45:57星期六。
UTC时间 + 时差 = 本地时间
例如:
- UTC时间
2018-05-20 09:30:00 UTC
,UTC+0800(北京)2018-05-20 17:30:00 +8000
,UTC-0500(纽约)2018-05-20 04:30:00 -0500
- UTC时间
2018-05-20 01:30:00 UTC
,UTC+0530(印度)2018-05-20 07:00:00 +0530
,UTC-1000(夏威夷)2018-05-19 15:30:00 -1000
闰秒是在协调世界时(UTC)中增加或减少一秒,使得UTC时与原子时[5]之间的差不超过0.9秒。
需要闰秒的部分原因是因为一个太阳日并不总是86400秒。
当要增加正闰秒时,这一秒是增加在第二天的00:00:00之前,效果是延缓UTC第二天的开始。
当天23:59:59的下一秒被记为23:59:60,然后才是第二天的00:00:00。
如果是负闰秒的话,23:59:58的下一秒就是第二天的00:00:00了,但目前还没有负闰秒调整的需求。
最近的一次添加闰秒是在2016年12月31日23:59:60。
UNIX时间,或称POSIX时间是UNIX或类UNIX系统使用的时间表示方式。
一般定义为从协调世界时(UTC时间)1970年1月1日0时0分0秒起至现在的总秒数。
考虑到闰秒的话,更精确的定义为从协调世界时(UTC时间)1970年1月1日0时0分0秒起至现在经过闰秒调整之后的总秒数。
由于闰秒的存在,当有调整闰秒发生时,某个Unix时间戳可能表示两个时刻。
但是闰秒的调整并没有一定的规律,这就会导致在用unix时间戳来计算时间间隔时不准确。
计算机通过网络时间协议(Network Time Protocol,NTP)来接收闰秒调整的消息。
这篇博客说明了这个问题并给出了一个有意思的建议链接
[1] 平均太阳日是人们根据观察加上人为调整后,得出的时间单位,一个平均太阳日是固定的24个小时。
[2] 1960. 自历书时1900年1月1日12时起算的回归年的31,556,925.9747分之一为一秒
[3] 1秒为铯133原子基态的两个超精细能阶间跃迁对应辐射的9,192,631,770个周期的持续时间。
[4] https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html
[5] 国际原子时标是一种连续性时标,以原子钟所定义的秒为基本单位,由1958年1月1日0时0分0秒起,以日、时、分、秒计算。
原子时标的准确度为每 日数纳秒,而世界时的准确度则只为数毫秒。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)