日期中的GMT和UTC

一、前言:

最近在看http,在http请求头和响应头有几个值是GMT时间格式,如last-modifiedif-modified-sinceexpire等等,包括cookie中的expire属性也是GMT格式的时间,于是查阅资料了解了一下

二、GMT和UTC

1. GMT

GMT(Greenwich Mean Time), 格林威治平时(也称格林威治时间)。它规定太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点。
1972年之前,格林威治时间(GMT)一直是世界时间的标准。1972年之后,GMT 不再是一个时间标准了。

2. UTC

UTC(Coodinated Universal Time),协调世界时,又称世界统一时间、世界标准时间、国际协调时间。
UTC 是现在全球通用的时间标准,全球各地都同意将各自的时间进行同步协调。UTC 时间是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以秒为单位的国际原子时所综合精算而成。
在军事中,协调世界时会使用“Z”来表示。又由于Z在无线电联络中使用“Zulu”作代称,协调世界时也会被称为”Zulu time”。

三、时区

初中地理知识,有点忘了,上个图梳理一下

从格林威治本初子午线起,经度每向东或者向西间隔15°,就划分一个时区,在这个区域内,大家使用同样的标准时间。
全球共分为24个标准时区,相邻时区的时间相差一个小时。
f08bf9f4b2a5465bb1950bfe8659f5cc

四、注意

如果不考虑秒,GMT和UTC时间基本是一样的
我们处于东八区,比格林尼治时间早八个时区,也就是早八个小时,格林尼治时间 + 八小时就是我们这里的时间

1
2
3
4
5
6
7
8
let date = new Date();
console.log("GMT时间:" + date.toGMTString())// GMT时间:Wed, 21 Apr 2021 14:11:02 GMT
console.log("UTC时间:" + date.toUTCString())// UTC时间:Wed, 21 Apr 2021 14:11:02 GMT
let zone = 8;
let currentDate = new Date(date.getTime() + 8 * 60 * 60 * 1000);
console.log("通过计算获取的当前时区时间:" + currentDate.toGMTString())// 通过计算获取的当前时区时间:Wed, 21 Apr 2021 22:11:02 GMT
console.log("当前时区时间:" + date.toLocaleString())// 当前时区时间:2021-4-21 22:11:02

通过控制台发现GMT时间和UTC时间基本不会有偏差