使用new Date().toISOString()时,会出现日期少一天的情况,后面分析是因为ISO标准时间用的是格林尼治时间,而中国时间时区是东八区,转为格林尼治时间要往前提前八个小时,那这个时候就需要将格林尼治时间转为北京东八区时间。我网上查询了很多相关的资料,用如下方法转换即可获取到正确的时区时间。
//处理时区差方法,其中time是需要处理的时间和日期
static tiemtZone(time:any){
let timeMills=Date.parse(time);
//时区差,该值为负数
let tzoffset = (new Date()).getTimezoneOffset() * 60000;
//返回当前时区的时间
let imetZoneTime = (new Date(timeMills -tzoffset)).toISOString().slice(0, -1);
return imetZoneTime;
}