秒是一个时间基本单位。一天24小时,一小时60分,一分钟60秒,这来自于秒的定义——1秒的时间间隔为平均太阳日[1]的1⁄86400。到了20世纪中叶,人们发现地球自转的时间并不是恒定的,于是在1956年改以地球绕太阳轨道公转一周的时间来定义秒[2]。1967年,改用原子共振频率来定义秒[3],并在此基础上制作出了原子钟。目前,原子钟是世界上已知最准确的时间测量和频率标准。

GMT时间

格林尼治平时(Greenwich Mean Time,GMT),又称为格林尼治标准时间。
格林尼治平时的正午是指当平太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。自1924年2月5日开始,格林尼治天文台负责每隔一小时向全世界发放调时信息。由于地球每天的自转是有些不规则的,而且正在缓慢减速,因此格林尼治平时基于天文观测本身的缺陷,已经被原子钟报时的协调世界时(UTC)所取代。

在http协议中规定,所有时间都要转换为GMT时间[4],例如date: Sat, 19 May 2018 17:17:24 GMT

UT时间

世界时(Universal Time,UT),是一种以格林尼治子夜起算的平太阳时。
由于1925年以前人们在天文观测中,常常把每天的起始(0时)定为正午,而不是通常民用的午夜,给格林尼治平时的意义造成含糊,人们使用世界时一词来明确表示每天从午夜开始的格林尼治平时。

时区

时区是指地球上的某一个区域使用同一个时间定义。GMT时间或者UT时间,都是表示地球自转速率的一种形式。从太阳升起到太阳落下,时刻从0到24变化。这样,不同经度的地方时间自然会不相同。为了解决这个问题,人们把地球按经度划分为不同的区域,每个区域内使用同一个时间定义,相邻的区域时间差为1个小时。时区又分为理论时区和法定时区。

理论时区

按经度,每15°为一个时区,将地球划分为24个时区,以本初子午线为中心,向东西两侧各延伸7.5°的区域为0时区。

法定时区

法定时区是在理论时区的基础上,根据某些地区的国界线做了调整之后的时区。为实际使用的时区。例如中国横跨东五区到东九区五个时区,但统一使用东八区时间(北京时间)。

时差

某个地方的时刻与0时区的时刻差称为时差,时差东正西负。以本初子午线为中心,每向东一跨过一个时区,时刻增加一个小时,每向西跨过一个时区,时刻减少一个小时。

如何理解向东时区增加
由于地球是自西向东转,在地球的某一个地方观察,东边的时间比西边的时间早(东边的人们先看到太阳升起)。
想象一下某一个时刻,太阳在你的正上空,此时你所在的地点的时间为正午12点。这时住在你东边的人们,他们看到太阳已经在西边了,他们的时刻是下午,所以往东,时刻增加。

国际日期变更线

大体以180度经线为日界线。当自西向东穿过日期变更线时,日期需要减少一天,反之,日期增加一天。

UTC时间

协调世界时(Coordinated Universal Time)。是主要的世界时间标准,以原子钟所定义的秒长为基础,在时刻上尽量接近GMT时间。UTC时间认为一个太阳日总是86400秒。在大多数情况下,UTC时间能与GMT时间互换。

UTC与时区

本初子午线所在的时区的时间后面加上字符Z,表示UTC时间。Z即为0时区的标志,读做Zulu。例如09:30 UTC就写作0930Z14:45:15 UTC则为14:45:15Z144515Z

UTC偏移量

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时间 + 时差 = 本地时间

例如:

  1. 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
  2. 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时间

UNIX时间,或称POSIX时间是UNIX或类UNIX系统使用的时间表示方式。一般定义为从协调世界时(UTC时间)1970年1月1日0时0分0秒起至现在的总秒数。考虑到闰秒的话,更精确的定义为从协调世界时(UTC时间)1970年1月1日0时0分0秒起至现在经过闰秒调整之后的总秒数。

UNIX时间戳与闰秒

由于闰秒的存在,当有调整闰秒发生时,某个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秒起,以日、时、分、秒计算。原子时标的准确度为每 日数纳秒,而世界时的准确度则只为数毫秒。

转载于:https://www.cnblogs.com/xieyong-p/p/9062358.html

时区,GMT时间,UTC时间,UNIX时间戳相关推荐

  1. php utc时间_PHP转换UNIX时间戳 UTC时间(TZ格式) 标准时间的方法 UNIX UTC GMT时间、本地时间互转...

    在PHP编程中经常会遇到各种不同格式的时间 比如: unix时间戳:1547740800 UTC时间:2019-1-18T00:00:00Z 标准时间:2019-1-18 00:00:00 以上这三个 ...

  2. c语言 北京时间转换utc时间_mysql之unix时间戳和正常时间格式之间的转换

    转载:https://www.cnblogs.com/longzhongren/p/4596278.html 函数:FROM_UNIXTIME 作用:将MYSQL中以INT(11)存储的时间以&quo ...

  3. php时间戳 剩余日期时间_PHP中UNIX时间戳和日期间的转换与计算实例

    UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式.以32位整数表示格林威治标准时间,例如,使 ...

  4. DateTime时间格式转换为Unix时间戳格式

    // DateTime时间格式转换为Unix时间戳格式 public int ConvertDateTimeInt(System.DateTime time) { System.DateTime st ...

  5. MySql 格式化时间(包括正常时间格式与unix时间戳的互相转换)

    函数:FROM_UNIXTIME 作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示. 语法:FROM_UNIXTIME(unix_timestam ...

  6. DSP学习-- UTC转UNIX时间戳

    如需转载请注明出处:https://juyou.blog.csdn.net/article/details/114646547 之前讲过了,参看: STM32开发 – UTC.UNIX时间戳.北京时间 ...

  7. 统一javaweb项目和mysql数据库时间UTC时间方法及原理

    统一javaweb项目和mysql数据库时间UTC时间方法及原理 文章目录 统一javaweb项目和mysql数据库时间UTC时间方法及原理 前言 UTC时间与 GMT时间 时间戳和时区 mysql时 ...

  8. STM32开发 -- UTC、UNIX时间戳、北京时间之间的转换

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/87637350 我碰到的问题,GPS上UTC时间转北京时间和STM32上UNI ...

  9. php时间戳基础知识点,php日期和时间基础知识--Unix时间戳

    /*1.取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和. ...

  10. 认识GMT和UTC时间-附带地理知识

    GMT-格林尼治标准时 GMT 的全名是格林威治标准时间或格林威治平时 (Greenwich Mean Time),这个时间系统的概念在 1884 年确立,由英国伦敦的格林威治皇家天文台计算并维护,并 ...

最新文章

  1. 2.4 Go语言基础之切片
  2. 【Ubuntu】Ubuntu下的录频软件SimpleScreenRecorder
  3. make: warning: file “xxx“ has modification time yyy s in the future 解决方法
  4. 沪江基于容器编排的Dev/Ops流程
  5. Python的10大最佳功能是什么?
  6. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)
  7. React 重温之 组件生命周期
  8. 《操作系统》OS学习(三):系统调用
  9. leetcode - 638. 大礼包
  10. 数据操作语言DML及数据定义语言DDL的区别
  11. Windows 平台安装 MongoDB
  12. C++ 在一个cpp文件中使用另一个cpp文件中定义的函数
  13. mac 连接百度云服务器地址,教你怎么在 Mac 下把百度网盘映射到另一个文件夹
  14. BZOJ 1072 排列
  15. xp系统更新的服务器失败是怎么回事啊,xp系统显示“服务器错误500”的两种解决方法...
  16. Bracket Sequences Concatenation Problem括号序列拼接问题(栈+map+思维)
  17. python对称加密_【Python】 基于秘钥的对称加密
  18. vs 服务容器中已存在服务_无服务器vs容器,企业如何正确选择?
  19. Matlab中句柄类
  20. 【数据库】理解一对一、一对多、多对多关系

热门文章

  1. 2020-12-11静态路由汇总实验
  2. WEBTIMER控件研究的心得:WebTimer的启示
  3. FORCESPRO的使用教程
  4. U盘量产后USB鼠标和键盘都无法使用,如何解决?
  5. 从网秦安全报告看各国各城百态
  6. springboot点餐微信小程序系统毕业设计源码221144
  7. Python_基础笔记
  8. 带你从头到尾梳理大图片加载OOM处理问题
  9. 我一直在维护的石墨文档开源了
  10. 查看网页最后修改时间方法以及原理简介