java中的关于时间的概念

来源:互联网 发布:巨人城刷龙啸翻牌软件 编辑:程序博客网 时间:2024/04/28 17:52

前言:有些概念很抽象,不好理解。花点时间搞定它们,让自己应用起来更加得心应手。


先摘录这些名词的由来,大家看看心中有数就好。

格林威治标准时间 GMT

十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。1675年旧皇家观测所(Old Royal Observatory) 正式成立,到了1884年决定以通过格林威治的子午线作为划分地球东西两半球的经度零度。观测所门口墙上有一个标志24小时的时钟,显示当下的时间,对全球而言,这里所设定的时间是世界时间参考点,全球都以格林威治的时间作为标准来设定时间,这就是我们耳熟能详的「格林威治标准时间(Greenwich Mean Time,简称G.M.T.)的由来,标示在手表上,则代表此表具有两地时间功能,也就是同时可以显示原居地和另一个国度的时间。

世界协调时间 UTC

多数的两地时间表都以GMT来表示,但也有些两地时间表上看不到GMT字样,出现的反而是UTC这3个英文字母,究竟何谓UTC?事实上,UTC指的是Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间),是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此若以「世界标准时间」的角度来说,UTC比GMT来得更加精准。其误差值必须保持在0.9秒以内,若大于0.9秒则由位于巴黎的国际地球自转事务中央局发布闰秒,使UTC与地球自转周期一致。所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。

夏令时 DST

DST是Daylight Saving Time的缩写,称为阳光节约时,在我国称为夏时制,又称夏令时,是一种为节约能源而人为调整地方时间的制度。有些国家DST的使用时间较长,(如美国长达7个月)跨越了春夏秋等三个季节,因此简单地用夏时制的概念已经不能完全表达DST的确切含义了,所以有人也称其为节能时。本文统一使用“DST”这一说法。所谓的DST,就是利用夏季天亮得早这一自然现象,人为地将时间提前一小时。这样就可以使人们早起早睡,以充分利用光照资源,减少照明时间,从而节约照明用电。

总结一下:
1>UTC、GMT可以不做区分
2>DST 是地方人为的调整时间表示,方便大家作息。

切入正题:重要概念


1.时间戳任何地方都是相同的

比如中国现在是晚上8点 那美国就是早上8点。注意这个只是时间表示不同,无论你在中国还是美国,大家对应的时间戳是一样的。java时间戳是从1970年1月1日0点(对应时间戳就是0)开始计算

2.时间是一种人为表示法

全球被划为24个时区,GMT对应的就是0时区。时区是东正西负,正表示在时间表示上比0时区快几个小时,负表示在时间表示上比0时区慢几个小时。
比如GMT是2017.10.1号0点。中国是东八区,所以中国显示的时间就是2017.10.1号8点。
注意这个只是时间表示上不同而已,大家的时间戳是相同的

3.夏令时其实和时区概念差不多

就是人为在时区的基础上,根据当地来相应的调快或者调慢时间表示而已。

换算公式:
UTC/GMT时间 + 当前时区(东+西-) = 本地时间
注意:一个国家领土面积很大会跨越好几个时区,比如中国跨越5个时区,但是为了时间在一个国家的统一,中国采用北京时间就是东八区。

已经到底了=_+,下一篇介绍java中对时间处理的API。

原创粉丝点击