经历了前端把Date转换为yyyy-MM-dd HH:mm:ss问题,现在又遇到一个棘手的问题,就是从mysql中取出的时间转换为上面的那种格式,于是我想出从后台转换成功后再去前台显示,毕竟前台的代码是这样的
dataNewObj.startTime = userInfo[i].startTime.replace(/-/g,'/');
dataNewObj.endTime = userInfo[i].stopTime.replace(/-/g,'/');然后开启了我走上date不归路的第二段,先把时间取出来看看
Date date1=list.get(0).getStopTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str1=sdf.format(date1);输出的str1是这样的:
2021-09-27 21:40:00
这不真正是我想要的格式么!
鉴于昨天我成功的把String这个类型的字符串成功转换成相同的字符串之后,我直接调用StringtoDate函数,转换成Date,再进行存储!
list.get(0).setStopTime(DateUtil.stringToDate(str1,DateUtil.DEF_DATE_FORMAT_STR));
但是没有成功,于是我打断点调试,发现转换失败,是下面这样的:
Mon Sep 27 21:40:00 CST 2021
输出前端的数据是这样的:
为什么呢?昨天我明明是相同的字符串,一样的调用,为什么这个转换还是从mysql中取出来的一样呢?
这个问题丞待解决,待我回头研究研究!
然后我又想我这一条数据取出来改变格式,再存进去,那很多条呢?太占内存且效率低!
于是改变思路,在前端把数据改成想要的时间格式,在项目中我发现已经写好了的时间格式转换的代码:
/**
* 将"2018-05-19T08:04:52.000+0000"这种格式的时间转化为正常格式
* @param time
*/
function timeFormat(time) {
var d = new Date(time);
var year = d.getFullYear(); //年
var month = d.getMonth() + 1; //月
var day = d.getDate(); //日
var hh = d.getHours(); //时
var mm = d.getMinutes(); //分
var ss = d.getSeconds(); //秒
var clock = year + "/";
if (month < 10)
clock += "0";
clock += month + "/";
if (day < 10)
clock += "0";
clock += day + " ";
if (hh < 10)
clock += "0";
clock += hh + ":";
if (mm < 10) clock += '0';
clock += mm + ":";
if (ss < 10) clock += '0';
clock += ss;
return (clock);
}
于是我把刚开始的前端代码做了以下改变
dataNewObj.startTime = timeFormat(userInfo[i].startTime).replace(/-/g,'/'); dataNewObj.endTime = timeFormat(userInfo[i].stopTime).replace(/-/g,'/');
成功输出了我想要的效果:

京公网安备 11010502036488号