当前位置 博文首页 > q1424966670的博客:JS格式化时间之后少了8个小时
var data = Date.parse("Tue May 26 16:53:31 CST 2020")
?网上搜了这个方法,发现还是不行,最后查了一下,是时区问题
原因:
new Date(CST)。new Date通过解析currentDateStr返回一个long类型的时间差(UTC时间)来构造日期对象,但这个解析的过程中,如果遇到CST,会被认为是指北美的时区,比格林威治时间(GMT)晚6个小时,按照转换关系,转成UTC需要加6个小时。而在输出receivedCurrentDate的时候会调用toString方法,会根据所在的时区格式化输出日期,也就是将UTC转成China Standard Time,需要加8个小时,所以就出现了相差14个小时
解决办法:
var str = "Tue May 26 16:53:31 CST 2020".replace("CST",'GMT+0800');
return new Date(str).Format("yyyy-MM-dd hh:mm:ss")
?
cs