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")

 

你可能感兴趣的:(JavaScript,时间-8小时)