经历了前端把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,'/');

成功输出了我想要的效果:
图片说明