GMT:格林威治时间

格林威治(也称:格林尼治)(Greenwich Mean Time,简称G.M.T.) 时间,也叫世界时(Universal Time),也叫世界标准时间。是指位于英国伦敦郊区的【皇家格林尼治天文台】的标准时间,是本初子午线上的地方时,是0时区的区时。

众所周知,中国统一用的北京时间是位于东八区(+8)与标准时间相差8小时。什么含义?举个例子:若GMT(英国伦敦的格林威治)现在是上午11点,那中国北京时间现在就是 11 + 8 = 19点(下午7点)。

将这个公式再抽象一下,可表示为:本地时间=GMT+时区差

北京位于东八区,则时区差N=+8,美国纽约位于西五区,则时区差N=-5。这么算来,若北京时间是晚上23点的话,美国纽约时间就是当天上午10点(23 - 8 - 5 = 10)

凭什么格林威治作为标准时间?

  • 时区(Time zone)是地球上的区域使用同一个时间定义。
  • 以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时)
  • 为了克服时间上的混乱,1884年在华盛顿召开了一次国际经度会议(又称国际子午线会议), 会议上制定了全球性的标准时。它规定英国格林威治天文台旧址为全球时间的中心点(零时区),并由它负责维护和计算
    • 格林威治天文台观测所门口墙上有一个标志24小时的时钟,显示当下的时间

      • 从1924年开始,格林威治天文台每小时就会向全世界播报时间(截止到1979年)
      • 对全球而言,这里所设定的时间是世界时间参考点,全球都以格林威治的时间作为标准来设定时间,这就是我们耳熟能详的「格林威治标准时间 GMT」的由来
    • 其实选择英国格林威治最主要原因是:当时大部分的船只都已经格林威治子午线做为参考标准,毕竟曾经的英国可是日不落帝国,大航海时代末便开始称霸世界,拳头里面出政权。
    • 格林威治天文台在计时领域的权威是非常大的,譬如离我们最近的一次“时间风波”:在即将跨世纪的时候,世界各国对21世纪到底应该从2000年开始还是从2001年开始争论不休,最终还是格林威治天文台出面平息了争论,开新闻发布会宣布21世纪始于2001年。
  • 除了选定中心点作为时间时之外,它还规定将全球划分为24个时区(东、西各12个时区):
    • 地球绕自转轴自西向东的转动(太阳东起西落),所以东时区的人会比西时区的人早一些看到太阳,从而时间上会早一点。
    • 因此,以通过格林威治的子午线作为划分地球东西两半球的经度零度,按照地球自转方向,每隔经度15°划分一个时区的方法,全球共分为24个时区:东1区至东12区,西1区至西12区,其中东西12区跨度都是7.5°也叫半时区。
    • 每差一个时区,区时相差一个小时,相差多少个时区,就相差多少个小时,这是理论时区。
    • 现实情况中为了避开国界线,有的时区的形状并不规则,而且比较大的国家以国家内部行政分界线为时区界线,被称为法定时区。

问:中国有哪几个时区?

中国大陆共横跨5个时区,但是选用东八区时间作为全国标准时间。

中国用统一时间在沟通上确实方便得多,减少了很多不必要的麻烦。但是也带来一些“小问题”,比如新疆的朋友(位于东5/6区)实际比东八区的北京时间晚了 2-3个小时,我们正常7点天黑准备吃完饭的时候,新疆那边还太阳当空照呢

问:美国有几个时区?

4个时区

UTC:世界协调时间

有一些表,上面标识了GMT,则代表此表具有两地时间功能,也就是同时可以显示原居地和另一个国度的时间。

但也有些两地时间表上看不到GMT字样,出现的反而是UTC这3个英文字母。这是怎么回事呢?

  • 事实上,UTC指的是Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间),它是以原子时作为计量单位的时间,计算结果极其严谨和精密。它比GMT时间更来得精准,误差值必须保持在0.9秒以内,倘若大于0.9秒就会通过位于巴黎的国际地球自转事务中央局发布的闰秒来“解决”。
  • 不过对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。

原子时:物质的原子内部发射的电磁振荡频率为基准的时间计量系统。美国的物理实验市在2014年造出了人类历史上最精确的原子钟,50亿年误差1s,可谓相当靠谱了。中国的铯原子钟也能确保2000万年误差不超过1s。

大事记:1979年12月初内瓦举行的世界无线电行政大会通过决议,确定用“世界协调时间(UTC时间)”取代“格林威治时间(GMT时间)”,作为无线电通信领域内的国际标准时间。

UTC和GMT都称作世界标准时间,为毛有了GMT还搞出个UTC

  • GMT:老的时间计量标准,根据地球的自转和公转来计算时间的,自转一圈是一天,公转一圈是一年。但是呢,地球公转的轨道是椭圆形的,并且后来人们发现地球的自转时间也并不是恒定的,这么一来就会造成有一天时间长一些,有一天时间短一些的情况,误差较大给人感觉时间不那么“精准”了,因此迫切需要一个更加精准的方案来计时,UTC诞生了。
  • UTC:1967年人类制作出原子钟,从而“发明”了UTC时间正式投入使用。它是真正意义上的标准时间,以原子钟所定义的秒长为基础,UTC时间认为一个太阳日(一天)总是恒定的86400秒(24小时)。
  • UTC是协调时间,含义为:一切以我为基准,全部想我看齐。所以称它为世界标准时间是没毛病的,而把GMT称作格林威治当地时间更为合适(也叫旧的标准时间)。

由于在大多数情况下,UTC时间能与GMT时间互换。对此很多同学就丈二和尚摸不着头脑了,他俩这不就一样的吗?

其实非也。这里用通俗易懂的一句话来告知它俩的联系:

  • UTC是标准时间参照,像GMT(格林威治时间)、ET(美国东部时间)、PST(太平洋时间)、CST(北京时间)等等都是具体的时区时间。
  • GMT能和UTC直接转换,仅仅是因为碰巧GMT是0时区时间,数值上刚好和UTC是相等的(不需要精确到秒的情况下,二者可以视为相等),看起来一样,但是概念含义上请务必区分开来哈。

UTC与偏移量

  • 在日常生活中,我们所使用的时间肯定是本地时间。在只有GMT的时候,本地时间是通过时区计算出来的,而现在UTC才是标准参考,因此采用UTC和偏移量(Offset)的方式来表示本地时间:


这个偏移量可表示为:UTC -或UTC +,后面接小时数,分钟数。如:UTC +9:30表示澳大利亚中央标准时间,UTC +8表示中国标准时间。偏移量常见的表示形式有:±[hh]:[mm]、±[hh][mm]、±[hh]这三种方式均可。

举个例子:现在UTC时间是10:30z(z表示偏移量=0),那么北京时间现在若是1630 +0800(下午4点半),对应的纽约时间就是0530 -0500(早上5点半)。

注意:在UTC的世界里并无时区的概念,而是偏移量(时间点跟上偏移量才是一个正规的UTC时间),它和时区并无直接关系

可以看到偏移量可以精确到分钟级别控制,非常精细化。全球只有24个时区(只能精确到小时),但偏移量有“无数个”。当然喽为了方便沟通,时间日期联盟组织把世界主要国家/城市的偏移量汇总起来且都给取了个Time zone name名称用于沟通,共好几百个。 在可以这里看

CST时间

CST这个缩写比较尴尬的是它可以同时代表四个不同的时间:

Central Standard Time (USA) UT-6:00

Central Standard Time (Australia) UT+9:30

China Standard Time UT+8:00

Cuba Standard Time UT-4:00

可见,CST可以同时表示美国,澳大利亚,中国,古巴四个国家的标准时间。

CST到底啥意思就看如何翻译喽,所以需要根据上下文语境自行抉择

ISO

在时间日期上它全称是ISO 8601,是一种日期/时间表示方法的规范。规定了一种明确的、国际上都能理解的日历和时钟格式。

这一ISO标准有助于消除各种日-日惯例、文化和时区对全球业务产生的影响。它提供了一种显示日期和时间的方式,这种方式是明确定义的,对人和机器都是可以理解的。当日期用数字表示时,它们可以以不同的方式进行解释。例如,01/05/12可以表示2012年1月5日或2012年5月1日。在个人层面上,这种不确定性可能非常令人沮丧,在商业环境中,它可能非常昂贵。在日期不明确的情况下,组织会议和交付、书写合同和购买机票都是非常困难的。

ISO 8601通过制定一种国际公认的日期表示方式来解决这种不确定性:YYYY-MM-DD。例如 September 27, 2012就会被表示为2012-09-27。

很多开发语言内置了一些常用的ISO标准日期/时间格式,如Java中的: - ISO.DATE:yyyy-MM-dd, e.g. “2000-10-31” - ISO.TIME:HH:mm:ss.SSSXXX, e.g. “01:30:00.000-05:00” - ISO.DATE_TIME:yyyy-MM-dd’T’HH:mm:ss.SSSXXX, e.g. “2000-10-31T01:30:00.000-05:00”.

DST:夏令时/夏日节约时间

DST(Daylight Saving Time),夏令时又称夏季时间(Summer Time)

  • 是指在夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用。它是为节约能源而人为规定地方时间的制度(鼓励人们早睡早起,不要浪费电,夏天日照时间长尽量多用自然资源)
  • 每年的夏令时时间段还不一样(一般在3月的第2个周日开始),比如美国2020年夏令时时间是:2020年3月8日 - 2020年11月1日。具体做法是:在3.8号这天将时钟往前拨拨1个小时,11.1号这天还原回来。
  • 中国在1986 - 1992年短暂搞过一段时间,但太麻烦就“废弃”了

大事记:目前全世界有近110个国家每年要实行夏令时。 自2011年3月27日开始俄罗斯永久使用夏令时,把时间拨快一小时,不再调回。

冬令时

冬令时就是从夏令时调回来的时间,也就是时光倒退,2点变成1点的那个瞬间,这个1点就是冬令时的开始啦。其实冬令时才是英国“真正”的时间。夏令时的时间要往前调1个小时(+1),那么冬令时一到,时间是需要往后调1个小时(-1),这样一加一减,互相抵消,英国就又回到了零时区。

11月2号凌晨1:59的时候。下一分钟变成了凌晨1:00

时间戳

  • 现实生活的世界里,时间是不断向前的,如果向前追溯时间的起点,可能是宇宙出生时,又或是是宇宙出现之前,但肯定是我们目前无法找到的,我们不知道现在距离时间原点的精确距离。所以我们要表示时间, 就需要人为定义一个原点。它就是:格林威治时间(GMT)1970年1月1日的午夜0点0分0秒。

  • 时间戳一般指的UNIX时间,或类UNIX系统(比如Linux、MacOS等)使用的时间表示方式。定义为:从UTC时间的1970-1-1 0:0:0起到现在的总秒数(秒是毫秒、微妙、纳秒的总称)。它不考虑闰秒,又名 Unix epoch、Unix time、POSIX time。

为什么要有时间戳

  • 在某一个具体的时刻,时间戳只有一个,例如1567819100。在该时刻,用户在中国、朝鲜、巴基斯坦、美国读取的值都是一样的,因为时间戳是相对于UTC时间的。
  • 也就是说对于一家跨国公司来说,某个订单发生的时间,记录成时间戳的形式,然后在转换为不同的时刻

网络时间协议

为什么要引入

  • 上面我们说到,时间戳是不考虑闰秒的。
  • 但是不可忽略的一个case:由于闰秒的存在,那么当闰秒发生时,就极有可能出现同一个时间戳表示两个时刻的情况(类似时钟回拨),而且闰秒还没规律所以无法程序式的避免,怎么破?
  • 这个时候就需要一种专门的对时协议来保证了,它就是:网络时间协议。

是什么

  • 网络时间协议 Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

  • NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务,各大操作系统(windows/Linux)对NTP都有实现。

时间点、时间段、时长

我们可以把时间想象成一个向前和向后都无限延申的实数轴,那么:

  • 时间点是数轴上的一个点
  • 时间段就是两个时间点之间确定的一个区间
  • 时长(时间长度)就是一个有正负号的标量,它是两个时间点之差,不属于数轴

科普:24时区,GMT,UTC,DST,CST时间详解相关推荐

  1. 很多程序员都没搞明白的时间与时区知识 - 24时区/GMT/UTC/DST/CST/ISO8601

    全球24个时区的划分       相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究 ...

  2. 24时区,GMT,UTC,DST,CST时间详解

    全球24个时区的划分       相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究 ...

  3. 24时区,GMT,UTC,DST,CST时间详解 ISO8601

    全球24个时区的划分       相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究 ...

  4. linux c 设置utc时间,C/C++标准库之转换UTC时间到local本地时间详解

    前言 UTC 时间DateTime.UtcNow 和 系统本地时间 DateTime.Now 相差8个时区 ,美国本地时间和北京时间相差15个时区: 美国,而一般使用UTC时间方便统一各地区时间差异. ...

  5. UTC时间,本地时间,moment,时间 详解

    UTC时间,本地时间,moment,时间 详解 一.背景 utc时间和北京时间: utc:世界协调时,以英国格林威治时间为准 utc时间和北京时间相差8小时: 北京时间:2021-1-1 22:18 ...

  6. linux c++ 获取时间,详解Linux下的C++时间类型:time_t

    Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00 ...

  7. Linux下的时间详解【转】

    Linux下的时间详解 [转载]http://www.fangshanzi.com/linux-time-function-detail/ 1.首先来总结一下hwclock,这个容易晕: 1)/etc ...

  8. JS中的日期和时间详解

    JS中的日期和时间详解 关于Date()构造函数 简单实例 用Date()构造函数创建时钟 关于Date()构造函数 Date()构造函数是javascript的核心语言部分,用来创建表示时间和日期的 ...

  9. 明日之后服务器什么时候维护结束,明日之后什么时候合区 合区时间详解[多图]...

    明日之后官方会将一些活跃人数不多的区进行合区,来增加大区的活跃,玩家们对这个合区的时间很关注,下面安族小编给大家介绍一下合区时间详解. 明日之后最新合服时间公告 老区会有2个区合成在一起,这个叫做数据 ...

最新文章

  1. 正则表达式re模块使用介绍
  2. 《软件过程改进》练习题
  3. golang存储密码
  4. Eclipse 中查看一个方法被哪些对象引用了
  5. [个人网站搭建]·Django增加评论功能(Python3)
  6. java相关求助---Java泛型的理解与等价实现---------没有完全明白啊...请大神指导...
  7. 使用Kibana画图展示Nginx日志报表
  8. c语言倒序输出单词_洛谷 || 单词覆盖还原(C语言)
  9. 远程控制多台服务器,perl远程执行多台服务器shell命令
  10. 收藏!Solidworks从设计到制造流程解决方案 2022来了!
  11. 毕业设计 python opencv 机器视觉图像拼接算法
  12. 右上角的引用文献格式_参考文献的引用及录入格式
  13. 蓝鲸Epicor MES解决方案
  14. 户型图纸上3D房子生长动画LOGO展示PR片头模板
  15. Linux systemd启动流程
  16. EHCache简单使用
  17. Valheim英灵神殿服务器搭建指南 个人记录及踩坑
  18. springboot+mybatis 利用PageHelper插件分页,结果第二页的返回分页信息还是和第一页一样。
  19. 5.2 BGP水平分割
  20. ER模型详解-陈氏模型

热门文章

  1. linux怎么创建用户登录,如何创建一个不能登录的Linux用户名
  2. UE4 C++入门之路4-PostInitProperties函数详解(设置属性默认值的四种方法)
  3. Python中比较好用的PDF模块——发票金额提取
  4. 高中学习方面的一点经验
  5. 05快速排序(不稳定)
  6. 一座宝塔_书是一座知识宝塔作文600字
  7. Python3爬虫-04-模拟登录爬取企信宝200页数据
  8. Android 13 功能和变更列表
  9. input标签的类型有哪些
  10. 2018 (天津)新能源汽车三电系统技术发展交流大会暨汽车轻量化技术开发与材料应用论坛