GMT和UTC有什么区别?
GMT:格林威治时间
格林威治(也称:格林尼治)时间,也叫世界时(Universal Time),也叫世界标准时间。是指位于英国伦敦郊区的【皇家格林尼治天文台】的标准时间,是本初子午线上的地方时,是**0时区**的区时。
GMT是北京是东八区(UTC +8:00)。什么意思呢?当格林威治0:00的时候,北京时间是8:00整。因为我们比格林威治晚了8个时区,所以时间上会晚8个小时。
北京时间=格林威治时间+8(时区差) 本地时间=格林威治时间+时区差
凭什么格林威治作为标准时间?
你可能会问,大家都有腰间盘,为何格林威治的那么突出呢?
大背景是这样子的:19世纪开始,世界各国来往开始频繁,而欧洲大陆、美洲大陆和亚洲大陆都有各自的时区,为提高沟通效率避免混乱,各国的代表1884年在美国华盛顿召开了国际大会,选出英国伦敦的格林威治作为全球时间的中心点,并由它负责维护和计算,从1924年开始,格林威治天文台每小时就会向全世界播报时间(截止到1979年)。
在美国华盛顿开会,确定英国伦敦作为时间中心点,还蛮滑稽O(∩_∩)O哈哈~
其实选择英国格林威治最主要原因是:当时大部分的船只都已经以格林威治子午线做为参考标准,毕竟曾经的英国可是日不落帝国,大航海时代末便开始称霸世界,拳头里面出政权。
格林威治天文台在计时领域的权威是非常大的,譬如离我们最近的一次"时间风波":在即将跨世纪的时候,世界各国对21世纪到底应该从2000年开始还是从2001年开始争论不休,最终还是格林威治天文台出面平息了争论,开新闻发布会宣布21世纪始于2001年。
GMT和Http协议的渊源
Http 1.1协议对日期时间传输格式是有严格规定的,支持如下三种格式:
yaml
Sun, 06 Nov 1994 08:49:37 GMT : RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08: 49:37 GMT : RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 : ANSI C's asctime 〉比企电乌托邦
其中第一种格式是互联网传输的标准格式,也是现行的标准。2、3种纯是为了兼容Http 1.0而设计,现在基本已经淘汰没人再会使用,所以事实上的格式只有第一种这1种,作为一个有经验的程序员对这种格式应该不陌生。
[!IMPORTANT]
另外,还有个关键的知识点:所有HTTP日期/时间戳都必须用格林威治标准时间(GMT)表示,没有例外。对于HTTP来说,GMT完全等于UTC(协调世界时)。
当然喽,这一切都是由浏览器自动帮你完成的,毕竟Http协议是浏览器去搞的不是
UTC:世界标准时间
Coordinated Universal Time直译为:世界协调时间。它是以原子时 作为计量单位的时间,计算结果极其严谨和精密。它比GMT时间更来得精准,误差值必须保持在0.9秒以内,倘若大于0.9秒就会通过闰秒来"解决"。
大事记:1979年12月初内瓦举行的世界无线电行政大会通过决议,确定用"世界协调时间(UTC时间)"取代"格林威治时间(GMT时间)",作为无线电通信领域内的国际标准时间。
UTC与GMT的区别
UTC和GMT都称作世界标准时间,为毛有了GMT还搞出个UTC,到底有何区别,下面做出简述。
GMT理解为0时区的标准时间即可
UTC是一个标准,所有的时间都以它为基准。可以说UTC就是等于GMT的
UTC与偏移量
在日常生活中,我们所使用的时间肯定是本地时间。在只有GMT的时候,本地时间是通过时区计算出来的,而现在UTC才是标准参考,因此采用UTC和偏移量(Offset)的方式来表示本地时间:
这个偏移量可表示为:UTC -
或UTC +
,后面接小时数,分钟数
。如:UTC +9:30表示澳大利亚中央标准时间,UTC +8表示中国标准时间。偏移量常见的表示形式有:±[hh]:[mm]
、±[hh][mm]
、±[hh]
这三种方式均可。
举个例子:现在UTC时间是10:30z
(z表示偏移量=0),那么北京时间现在若是16:30 +0800
(下午4点半),对应的纽约时间就是05:30 -0500
(早上5点半)。
CST这个缩写比较尴尬的是它可以同时代表四个不同的时间:
- CST (China Standard Time) :中国标准时间 UTC+8:00
- Central Standard Time (USA) UTC-6:00
- Central Standard Time (Australia) UTC+9:30
- Cuba Standard Time UTC-4:00