SpringBoot添加日期格式转换


问题描述

400报错:(日期格式转换错误)
(1)前端传的参数类型或者名称与后台接收参数的实体类的属性类型或者名称不一致; (2)前端提交ajax请求的数据应该是json格式字符串的,但是却没有将对象转换成json格式的字符串

(3)javaBean中的成员变量类型为Date类型,前端正常会传入yyyy/MM/dd格式,但是会报400错误,就需要用在后台用到到格式转换的方法

{
    "timestamp": "2022-11-13T13:01:45.770+00:00",

    "status": 400,

    "error": "Bad Request",

    "path": "/add"

}

原因分析:

前端传的参数类型或者名称与后台接收参数的实体类的属性类型或者名称不一致;


解决方案:

在后台controller类中添加此下代码

   @InitBinder
    public void initBinder(HttpServletRequest request, ServletRequestDataBinder binder){

       String birdate = request.getParameter("birdate");
       if (birdate.contains("/")) {
           SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
           //true:该参数允许为null
           CustomDateEditor editor = new CustomDateEditor(format, true);
           binder.registerCustomEditor(Date.class, editor);
       }
       else if (birdate.contains("-")) {
           SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
           CustomDateEditor editor = new CustomDateEditor(format, true);
           binder.registerCustomEditor(Date.class, editor);
       }
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值