时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时

摘要:
时间戳、时区、冬季时间、夏季时间UTC、GMT、PST、冬季时间和夏季时间看起来很傻。看完这篇文章,我相信你会对时间有一个清晰的认识。时间戳描述从某个时间开始的时间跨度。它是一个绝对值,与时区和冬季(夏季)时间无关。昼夜长短会随着季节的变化而变化。为了降低能耗,提出了冬季和夏季的概念。
关于时间的那点儿事儿 -- 时间戳,时区,冬令时,夏令时

UTC、GMT、PST,冬令时、夏令时 看起来是不是很懵,看完本文后相信关于时间你会有一个清醒的认知。

时间按照不同的角度可以划分为:

  1. 时间戳
  2. 时区
  3. 冬令时,夏令时

一、时间戳

时间戳:距离一个历史上一个标准参照时间经过的秒数(毫秒数)。

有两种常用时间参照点:

  • 1970-01-01 00:00:00 应用最广泛的时间戳参照点。
  • 2001-01-01 00:00:00 常被苹果系统使用。

注意:以上时间节点皆采用UTC的标准时区。

时间戳描述了距离某一时刻经过的时间跨度,是一个绝对值,和时区,冬(夏)令时这些没有关系。所以在地球上的同一时间点,对于同一参照点,获取到的时间戳都是完全一致的。

二、时区

1884年在华盛顿召开的国际经度会议(又称国际子午线会议)上,规定将全球划分为24个时区(东、西各12个时区)。

如下图所示:

时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时第1张

全球同一时刻不同时区的本地时间不同例如中国时间: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点)。

昼夜长短会随着四季变换,出于减少能源消耗的目的,提出了冬令时、夏令时的概念。

在天亮早的夏季人为将时间提前一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。

冬令时通常代表使用当地的标准时间,夏令时实施期间时钟拨快一小时,相当于时区往前(东)进一个。

每年会对时间进行两次调整,如下图所示:

时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时第2张

时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时第3张

四、总结

  1. 时间戳代表了距离某一标准参考时刻经过的(毫)秒数。所以可以唯一标识时间轴上的一点。
  2. 时区是为了人们生活的便利性,用于标识本地时间。
  3. 冬令时,夏令时出于节省能源消耗的目的提出的概念,可能会让每年的某一段时间内本地时间会前进一个小时。

在软件开发中,传递时间的时候为了无歧义,应该全部采用时间戳。在需要展示给用户的时候,需要考虑到用户本地的时区及冬令时、夏令时的情况计算出正确的本地时间。

免责声明:文章转载自《时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇groovy学习7groovy sql 雪霁霜飞 博客园vant-图片上传下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL 日期与时间的处理

1.查询当前日期时间:函数有now(),localtime(),current_timestamp(),sysdate()。 mysql> select now(),localtime(),current_timestamp(),sysdate(); +---------------------+---------------------+--...

Redis的并发竞争问题,你用哪些方案来解决?

Redis的并发竞争问题,主要是发生在并发写竞争。 考虑到redis没有像db中的sql语句,update val = val + 10 where ...,无法使用这种方式进行对数据的更新。 假如有某个key = "price",  value值为10,现在想把value值进行+10操作。正常逻辑下,就是先把数据key为price的值读回来,加上10,再...

logstash 过滤filter

logstash过滤器插件filter详解及实例 1、logstash过滤器插件filter 1.1、grok正则捕获 grok是一个十分强大的logstash filter插件,他可以通过正则解析任意文本,将非结构化日志数据弄成结构化和方便查询的结构。他是目前logstash 中解析非结构化日志数据最好的方式 grok的语法规则是: %{语法:语义} “...

UNIX时间戳及日期的转换与计算

UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位整数表示格林威治标准时间,例如,使用证书11230499325表示当前时间的时间戳。UNIX时间戳是从1970年1月1日零点(UTC/GMT的午夜)开始起到当前时间所经过的秒数。1970年1月...

C# 时间戳(TimeStamp)与时间(DateTime)的互相转换

  什么是时间戳:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。   时间戳在线转换网址:https://tool.lu/timestamp,时间戳的转换网址有很多,经常用的还有站长工具。 下附代码,在控制台中粘贴在启动类即可使用,需引用(using System)命名空...

RN 时间戳

let curTime = Date.now(); //获取到当前时间 curTime: 1555120690696 //是指从1970.1.1到现在的毫秒(ms)数 时间与时间戳之间的转换 // 获取当前时间戳 var timestamp = Date.parse(newDate()); console.log(timestamp); // 获取某个时...