关于时间的那点儿事儿 -- 时间戳,时区,冬令时,夏令时
UTC、GMT、PST,冬令时、夏令时 看起来是不是很懵,看完本文后相信关于时间你会有一个清醒的认知。
时间按照不同的角度可以划分为:
- 时间戳
- 时区
- 冬令时,夏令时
一、时间戳
时间戳:距离一个历史上一个标准参照时间经过的秒数(毫秒数)。
有两种常用时间参照点:
- 1970-01-01 00:00:00 应用最广泛的时间戳参照点。
- 2001-01-01 00:00:00 常被苹果系统使用。
注意:以上时间节点皆采用UTC的标准时区。
时间戳描述了距离某一时刻经过的时间跨度,是一个绝对值,和时区,冬(夏)令时这些没有关系。所以在地球上的同一时间点,对于同一参照点,获取到的时间戳都是完全一致的。
二、时区
1884年在华盛顿召开的国际经度会议(又称国际子午线会议)上,规定将全球划分为24个时区(东、西各12个时区)。
如下图所示:
全球同一时刻不同时区的本地时间不同例如中国时间:10:00 AM
对于美国西部时间:18:00 PM(冬令时)
17:00 PM(夏令时)。
1. GMT VS UTC
GMT 全称 Greenwich Mean Time,中文为格林威治标准时间。
UTC 全称 Universal Time Coordinated, 中文为协调世界时。
GMT和UTC都是代表0零时区的时间,两者相等。UTC是1972年之后引入的概念,是GMT的后继,现广泛应用于科技领域。
2. PST
全球分为24个时区之后,从UTC/GMT 开始往西依次表示为UTC/GMT - 1,-2……,往东表示为UGC/GMT+1,+2……。
除了UTC/GMT之外,还有一个很常见的时区:PST。
PST 全称 Pacific Standard Time,太平洋标准时间,等同于UTC/GMT -8,既西八区,被北美国家使用。
三、冬令时、夏令时
地球自转方向从西向东,所以东边更早看到新一天的太阳。各地区在时区概念的基础上,时间更接近于太阳时(最简单的理解就是太阳直射时,当地时间基本接近12点)。
昼夜长短会随着四季变换,出于减少能源消耗的目的,提出了冬令时、夏令时的概念。
在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。
冬令时通常代表使用当地的标准时间,夏令时实施期间时钟拨快一小时,相当于时区往前(东)进一个。
每年会对时间进行两次调整,如下图所示:
四、总结
- 时间戳代表了距离某一标准参考时刻经过的(毫)秒数。所以可以唯一标识时间轴上的一点。
- 时区是为了人们生活的便利性,用于标识本地时间。
- 冬令时,夏令时出于节省能源消耗的目的提出的概念,可能会让每年的某一段时间内本地时间会前进一个小时。
在软件开发中,传递时间的时候为了无歧义,应该全部采用时间戳。在需要展示给用户的时候,需要考虑到用户本地的时区及冬令时、夏令时的情况计算出正确的本地时间。