当前位置 博文首页 > q1424966670的博客:JS格式化时间之后少了8个小时

    q1424966670的博客:JS格式化时间之后少了8个小时

    作者:[db:作者] 时间:2021-08-27 18:52

    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