前段时间开发时,测试同学提了个BUG,说是时间转换不对劲,赶紧细细查了下,这些细节一直都不是太清楚,开发的时候也没在意,但关键时刻能要命啊
ISO --- ISO_8601日期格式标准,是国际标准化组织的日期和时间的表示方法
字母T
==> 日期和时间的分隔符,确切地讲是表示时间元素(Time
)的开始;字母Z
==> 表示UTC时间(可简单理解为是0时区);也可用4位数字格式的时间偏移量代替;不写的时候表示不偏移(当前时区):
2019-09-26T03:45:36.656Z // 0时区的2019年9月26日3点45分36秒656毫秒
2019-09-26T03:45:36.656-0800 // 西八区的2019年9月26日3点45分36秒656毫秒
2019-09-26T03:45:36.656+0800 // 东八区的2019年9月26日3点45分36秒656毫秒
以下是ISO格式的各种情况转换为 GMT+0800
(东8区时间):
new Date('2019-09-25T18:00:14'); // 不写z
Wed Sep 25 2019 18:00:14 GMT+0800 (中国标准时间)
new Date('2019-09-25T18:00:14z'); // 结尾是z
Thu Sep 26 2019 02:00:14 GMT+0800 (中国标准时间)
new Date('2019-09-25T18:00:14+0000'); // 0时区
Thu Sep 26 2019 02:00:14 GMT+0800 (中国标准时间)
new Date('2019-09-25T18:00:14+0800'); // 东8区
Wed Sep 25 2019 18:00:14 GMT+0800 (中国标准时间)
new Date('2019-09-25T18:00:14-0800'); // 西8区
Thu Sep 26 2019 10:00:14 GMT+0800 (中国标准时间)
GMT --- 格林威治时间(0时区时间)
UTC --- 世界标准时(根据GMT时间计算得来,比GMT更加精确,误差在0.9秒以内)
总结:ISO是时间展示格式。GMT和UTC是0时区时间,UTC比GMT更标准,通常情况下,UTC时间等于GMT时间(只是UTC时间更精确而已)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。