jsp页面时间字符串显示有时差

本文介绍了解决从Java后台传递日期到前端JS时出现的时间显示错误及时差问题的方法。通过分析问题根源在于CST与GMT时间格式差异,并提供了一种通过格式转换来修正时间差的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天做数据传递的时候遇到一个问题:

本来Date类型的一个字段,使用JSONObject.valueToString(resultMap)将数据传递到jsp页面时,由于时间变成了字符串类型,显示格式为“Tue Jul 31 00:00:00 CST 2018”。

以上显示先不说格式对不对,首先时间显示就是错误的(有时差)。先后尝试过Date.parse(timeStr);new Date(timeStr);new Date(Date.parse(new Date(timeStr.replace(/-/g,"/"))));将其转化为时间类型,结果类型转化成功了,但时差问题并没有解决。经过查找和分析,最终发现js接收java后台的时间数据时,时间格式的CST时间,而js默认的是GMT时间格式,js new出来的时间对象会比java传来的数据多了14个小时。即GMT时间=CST时间+14个小时。

解决方法,进行以下处理:

function dateToGMT(strDate){
    var dateStr=strDate.split(" ");  
    var strGMT = dateStr[0]+" "+dateStr[1]+" "+dateStr[2]+" "+dateStr[5]+" "+dateStr[3]+" GMT+0800";  
    var date = new Date(Date.parse(strGMT));
    return date;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值