深入理解时区概念:GMT,UTC,UTS和AOE
文章目录
- 前言
- 准备工作
- 格林威治标准时间 GMT
- 协调世界时间 UTC
- Unix 时间戳 UTS
- 世界统一时间 AOE
- 小结
前言
随时全球化的发展,国内的企业已经开始越来越多地与国际接轨,超出国门而向全球用户。由于大家都知道原因:地球是圆的,所以针对不是国家的地区所使用的时间表示问题,成为全球化中的一个重要问题,就此本文对几个重要的时间概念:GMT、UTC和UTS和AOE 时间行详细说明。
准备工作
在开始文章之前,我们首先讨论一个最基本的问题,如何决定“一天的开始”?相信所有人都理“一天”表示的是地球自转一周的用时,即便在古代,人们不知道地球是圆的,根据太阳的运行轨迹,也知道太阳转一圈就是一天。但是现在的问题是,什么是一天的开始,即这一时刻如何界定?这个看似简单的问题,实际上在历史上不同的国家有不同的处理方式,经过多年的摸索,最终决定时间的方式是用正午来决定,即利用中午太阳光的影子与指定线重叠的时刻为12点,因为这样最容易确定且误差最小。这种计时方式因为利用的是太阳定位,所以称之为太阳日。相对的还有有地球日,即地球上指定经线自动一周后重叠所用的时间。一个太阳日比地球日少约4分钟,换言之每年地球会有365(闰年366)个太阳日,而会有366(闰年367)个地球日。具体原因不在本文讨论范围内,有兴趣的可以自行研究。因此,只要正午12点定了,那么根据每天24小时,早晚的时间也都可以确定了。有了这个基础,下面我们再看这三个概念。
格林威治标准时间 GMT
根据维基百科,格林威治标准时间(Greenwich Mean Time)是伦敦格林威治皇家天文台计算的平均太阳时间,但是由于在过去的不同时期,它的计算方法有所不同,包括从中午开始计算; 因此,除非给出上下文,否则它不能用于指定准确的时间。英国经常将GMT用作协调世界时(UTC)的同义词。对于导航,它被认为等效于UT1(即现代的平均经度为0°的太阳时间); 但是此含义与UTC的差异最多可以达到0.9 秒。因此,术语GMT不应用于某些需要精确度的技术目的。
简单地说,GMT由于计算精度、历史算法等问题,有一定的确定性和不准确性,在精度高的场合不合适,所以现在逐渐被UTC取代,比如在Java中,默认的时间就是UTC。
协调世界时间 UTC
协调世界时(Coordinated Universal Time)是世界各地用来调节时钟和时间的主要时间标准,定义为:位于0度经度的平均太阳时间,是格林威治标准时间(GMT)的后继者。所以UTC也是太阳日计日方法。自1960年1月1日开始在世界范围内进行时间和频率传输的协调,并于1963年首次被正式采纳为CCIR 374建议书“标准频率和时间信号发射”。
冷知识:根据英文语法其缩写应该为CUT才对,但是在法国其写法为:Temps Universel Coordonné,缩写为TUC,因此双方经过多次协商,直到1967年才达成统一为意见UTC为双方所接受。
Unix 时间戳 UTS
UTS(Unix Time Stamp)时间戳是一种跟踪时间(以秒为单位)的方式。 此计数从1970年1月1日UTC的Unix Epoch开始。 因此,unix时间戳仅仅是特定日期与Unix纪元之间的秒数。 所以,这个时间是不考虑任何的计算方式的,非常简单有效的,只表示当前时间与开始时间的秒差,这样无论任何作用者,无论身在何处,作用何种计时方式,该时间点在技术上都是一样的。对于当地使用者,只需要进行一次转换即可变为当前时间。这种计时对于计算机系统在在线和客户端动态和分布式应用程序中跟踪和排序日期信息非常有用。所以被广泛使用在Unix操作系统中(后来的Linux,Windows等系统也都支持此计时方式)。
世界统一时间 AOE
AOE(Anywhere on Earth)取消了时区的概念,使用统一的时间以方便比较,也就是说AOE时间是唯一的,对于在世界任何位置的人都是一样,这样就避免了时间转换的问题,不同时区的人可以使用这个时间来讨论问题或决定时间。
当前的AOE时间可以通过 这里 查看 。AOE时间的定义是基于UTC,它比UTC落后12小时,比北京时间落后20个小时。
小结
本文简单简介了四种时间表示方式。基于准确可靠的原则,推荐使用UTC表示全球时间,在计算机中计时时,使用Unix Time Stamp,从而在全球范围内实现准确可靠一致的时间表示。
深入理解时区概念:GMT,UTC,UTS和AOE相关推荐
- 彻底弄透Java处理GMT/UTC日期时间
平时工作中遇到时间如何处理?用Date还是JDK 8之后的日期时间API?如何解决跨时区转换等等头大问题.A哥向来管生管养,管杀管埋,因此本文就带你领略一下,Java是如何实现GMT和UTC的? 众所 ...
- GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
目录 本文提纲 版本约定 ✍正文 GMT:格林威治时间 凭什么格林威治作为标准时间? 地球自转 中国有哪几个时区? 美国有哪几个时区? GMT和Http协议的渊源 UTC:世界标准时间 UTC和GMT ...
- GMT UTC CST ISO 夏令时 时间戳
日期/时间的处理是平时开发中非常常见的场景,若只是简单的格式化场景那就还好,一旦涉及到时区.跨地域跨时区时间转换场景,甚至当还有GMT时间.UTC时间等一堆概念堆上来的时候,总是心理发虚,招架不住. ...
- 格林威治标准时间GMT=UTC
1. UTC 和 GMT 及 北京时间的关系 UTC和GMT,这两者几乎是同一概念.它们都是指的格林尼治标准时间,只不过UTC的称呼更为正式一点.两者的区别在于前者是一个天文上的概念,而 后者是基于一 ...
- 嵌入式的时间概念:GMT,UTC,CST,DST,RTC,NTP,SNTP,NITZ
GMT,UTC,CST,DST,RTC,NTP,SNTP,NITZ: 嵌入式的时间 ref 嵌入式开发中,几个时间概念? 彻底搞懂UTC时间 NTP协议详解 使用NTP协议获取网络时间戳(C/C++实 ...
- atitit.GMT UTC Catitit.GMT UTC CST DST CET 星期 月份 节日 时间的不同本质and起源
atitit.GMT UTC Catitit.GMT UTC CST DST CET 星期 月份 节日 时间的不同本质and起源 1. GMT(Greenwich Mean Time)是格林尼治平时 ...
- 世界计算机世界GMT,UTC,CST,本地时间,1970
参考:https://baike.baidu.com/item/%E4%B8%96%E7%95%8C%E6%97%B6,https://baijiahao.baidu.com/s?id=1732139 ...
- 对于新手来说,Python 中有哪些难以理解的概念?我似乎明白了
对于初学者,我们都遇到过难以理解一些概念.哪门都有哪些呢? 总结来说有:编码问题.装饰器.闭包.对象引用.可变性,抽象基类.魔术方法.多重继承.mixin.重载.可迭代对象.迭代器和生成器.上下文管理 ...
- 对于0基础来说,Python 中有哪些难以理解的概念?我似乎明白了
对于初学者,我们都遇到过难以理解一些概念.哪门都有哪些呢? 总结来说有:编码问题.装饰器.闭包.对象引用.可变性,抽象基类.魔术方法.多重继承.mixin.重载.可迭代对象.迭代器和生成器.上下文管理 ...
最新文章
- python -m参数
- 《开源者说》08期:聊聊Java那些事儿
- utm虚拟机安装linux,UTM: 在 iOS 上安装 Windows 或 Linux 等系统及虚机安装过程
- SAP Spartacus baseSite设置的源头 - 路由事件
- OS酱:“哎呀内存太小了,人家又缺页了!”
- spark-OutOfMemory:GC overhead limit exceeded 解决,timelimitexceeded
- 解析JDK 7的Garbage-First收集器
- jQuery ctrl+Enter shift+Enter
- PyCharm使用opencv错误解决办法:ModuleNotFoundError: No module named 'cv2'/ImportError: DLL load failed
- 最新最全 VSCODE 插件推荐(2022版)
- linux下安装jemalloc
- 《软件测试》学习目标与计划
- 微信支付V3版商家转账到零钱
- datax(二)datax on azkaban架构设计之datax as a service
- 【BZOJ1778】[Usaco2010 Hol]Dotp 驱逐猪猡
- 昨天我请教了几位大佬,他们告诉我要这样学习编程!
- 微软在盗版黑屏事件可能犯下极大的错误
- [软件人生]关于离婚对孩子的影响——我想说,我经历
- 统计分析 -- 正态分布
- 微信小程序实现图片拖动、放大、缩小、旋转、滤镜和切图功能