前端传递日期类型给后端报错

Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errorsField error in object 'noteQuery' on field 'startTime': rejected value [Sat Jun 10 2023 16:02:20 GMT+0800 (中国标准时间)]; codes [typeMismatch.noteQuery.startTime,typeMismatch.startTime,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [noteQuery.startTime,startTime]; arguments []; default message [startTime]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'startTime'; nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseable date: "Sat Jun 10 2023 16:02:20 GMT+0800 (中国标准时间)"]]
(已解决)

首先我试过注解方法

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;

然后还是报错,然后我有使用了初始化方法:

@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
    //转换日期 注意这里的转化要和传进来的字符串的格式一直 如2015-9-9 就应该为yyyy-MM-dd
    DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));// CustomDateEditor为自定义日期编辑器

}

然后还是报错,最后我在注解方法的基础上,前端写了一个方法,把日期类型转换成我要的格式,再发送给后端,问题解决!

mySimpleDateFormat(startTime) {
    let date = startTime;
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hour = date.getHours().toString().padStart(2, '0');
    const minute = date.getMinutes().toString().padStart(2, '0');
    const second = date.getSeconds().toString().padStart(2, '0');
    const formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second}`;
    // console.log(formattedDate);
    return formattedDate;
}

再调用这个方法(我使用的是vue),得到我需要的格式,就可以了传给后端了!

this.startTime = this.mySimpleDateFormat(this.startTime);

原来:Sat Jun 10 2023 16:12:03 GMT+0800 (中国标准时间)

现在:2023-06-10 16:09:20

你可能感兴趣的:(java,spring,开发语言,html,javascript)