当前位置:   article > 正文

前后端date类型传值问题_date类型接收yyyy-mm-dd格式数据

date类型接收yyyy-mm-dd格式数据

 以3月4号为例子:

1.前端传递date对象

控制台:

后端Dto 使用Date接收

private Date planSignTime

结果:后端报错

 JSON parse error: Cannot deserialize value of type `java.util.Date` from String "2020-03-03T16:00:00.000Z";

原因:待补充

2.前端传递date对象

控制台:

后端Dto 使用Date接收,并添加@JsonFormat注解

  1. @JsonFormat(pattern="yyyy-MM-dd")
  2. private Date planSignTime;

结果:无报错,但时间慢了一天

原因:
spring中对于@RestController或者@Controller+@ResponseBody
注解的接口方法的返回值默认是Json格式,
 
所以当对于date类型的数据,在返回浏览器端是会被spring-boot
默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。

因为格式化成yyyy-MM-dd,后面时间舍去,所以直接少一天。

3.前端传字符串(用到element官方文档中,格式化时间:value-format="yyyy-MM-dd" ,同时,rules监听时,type应改为string类型)

  1. ​<el-form-item label="计划签约日期" prop="plan_sign_time" label-width="120px">
  2. <el-date-picker v-model="contractData.plan_sign_time" type="date" placeholder="选
  3. 择日期" value-format="yyyy-MM-dd">
  4. </el-date-picker>
  5. </el-form-item>

控制台:

后端Dto 使用Date接收,并添加@JsonFormat注解

  1. @JsonFormat(pattern="yyyy-MM-dd")
  2. private Date planSignTime;

结果:正常

注解解释:
@JsonFormat用于将前台传到后台字符串变量转换为Date类型,还可将后台返回前台的Date变量转换为字符串类型(常用)
@DateTimeFormat用于将前台传到后台字符串变量转换为Date类型

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/813844
推荐阅读
相关标签
  

闽ICP备14008679号