【时间格式错误】-解决方式

【问题详情】:

    在数据库中建表时,为了更加精确,将支付时间设计成datatime类型,java中定义类型为Date,结果从前台页面获取支付时间的值时,一直报400错误

                                             

【解决方式】:

    1.由于json传递的都是字符串,没办法传给后台时间格式,所以前台传不了,需要后台解析

    2.可以在实体类中新增一个虚拟预留字段

   

1     /**
2      * 支付时间
3      */
4     private Date bPaymentTime;
5     /**
6      * 支付时间STRING
7      */
8     private String bPayTime;

     3.前台 Ajax 传递值的时候传递bPayTime字符串

    

1  $.ajax({
2                 type: 'post',
3                 url: '${ctx}/service/bill/add',
4                 data: {
5                     bPayTime: bPayTime6                 },

     4.然后在Controller中写一个解析器,将bPayTime拿到的值赋给bPaymentTime并转换成需要的时间格式

  1 mdrZffcBill.setbPaymentTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(mdrZffcBill.getbPayTime())); //转换日期格式 

  

  【测试】:

      1.通过断点拦截可以看到,此时bPayTime从前台拿到一个时间字符串,而bPaymentTime为null值

      

       2.当断点通过解析器时,时间格式成功转换

      

       3.放行,前台状态码显示成功

      

       4.成功传入数据库

      

       

       后记:

          以上方法太low了,灵机一动想起了另一个方法,有幸看到这的可以直接使用下面这个方法了!

          

           直接将bPaymentTime改为String类型,让后台接受String类型就行,

          

           

 

    

原文地址:https://www.cnblogs.com/xiaoluohao/p/12016878.html