3

前段时间开发时,测试同学提了个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时间更精确而已)


星不克
52 声望2 粉丝

一蓑烟雨任平生