时区,GMT时间,UTC时间,UNIX时间戳
秒
秒是一个时间基本单位。一天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
就写作0930Z
,14:45:15 UTC
则为14:45:15Z
或144515Z
。
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时间 + 时差 = 本地时间
例如:
- 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时间
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秒起,以日、时、分、秒计算。原子时标的准确度为每 日数纳秒,而世界时的准确度则只为数毫秒。
时区,GMT时间,UTC时间,UNIX时间戳的更多相关文章
- GMT、UTC、UNIX时间戳、时区
GMT.UTC.CTS: UTC时间:世界协调时间(UTC)是世界上不同国家用来调节时钟和时间的主要时间标准,也就是零时区的时间.UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统 ...
- C# DateTime时间格式转换为Unix时间戳格式
double ntime=dateTimeToUnixTimestamp(DateTime.Now); long g1 = GetUnixTimestamp(); long g2 = ConvertD ...
- DateTime时间格式转换为Unix时间戳格式
/// <summary> /// 将DateTime时间格式转换为Unix时间戳格式 /// </summary> /// <param name="date ...
- MySql 格式化时间(包括正常时间格式与unix时间戳的互相转换)
函数:FROM_UNIXTIME 作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示.语法:FROM_UNIXTIME(unix_timestamp ...
- 认识GMT和UTC时间-附带地理知识
GMT-格林尼治标准时 GMT 的全名是格林威治标准时间或格林威治平时 (Greenwich Mean Time),这个时间系统的概念在 1884 年确立,由英国伦敦的格林威治皇家天文台计算并维护,并 ...
- iOS 本地时间 / UTC时间 / 时间戳等操作 / 获取当前年月日
//获得当前时间并且转为字符串 - (NSString *)dateTransformToTimeString { NSDate *currentDate = [NSDate date];//获得当前 ...
- 获取当前时间UTC时间的下一个15分钟时间点
ZonedDateTime zdt = ZonedDateTime.now(ZoneOffset.UTC); int now15Minute = zdt.getMinute() / P15MINUTE ...
- 时间:UTC时间、GMT时间、本地时间、Unix时间戳
转自:http://blog.csdn.net/u012102306/article/details/51538574 1.UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT ...
- PHP中关于时间、时区、本地时间、UTC时间、GMT时间、时间戳等知识的梳理
在PHP开发中,我们经常会在时间问题上被搞糊涂,比如我们希望显示一个北京时间,但是当我们使用date函数进行输出时,却发现少了8个小时.几乎所有的php猿类都必须对php中几个重要的时间转换等方法进行 ...
- 关于时间:UTC时间、GMT时间、本地时间、Unix时间戳
1.UTC时间 与 GMT时间我们可以认为格林威治时间就是时间协调时间(GMT=UTC),格林威治时间和UTC时间均用秒数来计算的. 2.UTC时间 与 本地时UTC + 时区差 = 本地时间时区差东 ...
随机推荐
- screen,client,page三种确定鼠标坐标的区别和原生JS事件写法,区别于Jquery的$.on(x,y);和$.click()
screenX clientX pageX的区别 screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. clientX:跟scre ...
- 深入浅出javascript学习笔记
弱类型的隐式转换: 32 + 32 // 64 "32" + 32 // "3232" "32" – 32 // 0 巧用+/-规则转换类型 ...
- java之集合Collection 详解之4
package cn.itcast_04; public class Student { private String name; private int age; public Student() ...
- Golang Multipart File Upload Example
http://matt.aimonetti.net/posts/2013/07/01/golang-multipart-file-upload-example/ The Go language is ...
- 第一个vue示例-高仿微信
这时我学习vue写的第一个demo,因为以前学过angular,所以这次看vue的时候是先写demo,在写的过程中遇到不会的在看书的方式学习的,因为是针对性学习,所以可以快速的对vue有个大概的认识, ...
- HTML5 & MUI 界面样式
垂直居中+自动换行 样式效果如下所示,当文字没有超出一行时,显示如“备注信息”,当文字超出一行时,显示如“维修地点” HTML代码如下: <div class="mui-input-r ...
- 【构造】UVa 11387 The 3-Regular Graph
Description 输入n,构造一个n个点的无向图,使得每个点的度数都为3.不能有重边和自环,输出图或确定无解. Solution 如果n为奇数,奇数*3=奇数,度数为奇,必无解. 考虑我们怎么构 ...
- BZOJ_3670_[Noi2014]动物园_KMP
BZOJ_3670_[Noi2014]动物园_KMP Description 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的 ...
- DNS Server Centos 7
1.安裝服務 #yum update –y #yum install bind –y #systemctl start named 開啟服務named #systemctl ...
- Java IO--字符流--InputStreamReader 和 OutputStreamWriter
今天继续学习字符流的子类!!!! 先来熟悉一下适配器设计模式:(手写的,,嘿嘿) 因为据说InputStreamReader 和OutputStreamWriter采用了适配器模式(现在我还没能理解, ...