赞
踩
以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注解
- @JsonFormat(pattern="yyyy-MM-dd")
- 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类型)
-
- <el-form-item label="计划签约日期" prop="plan_sign_time" label-width="120px">
- <el-date-picker v-model="contractData.plan_sign_time" type="date" placeholder="选
- 择日期" value-format="yyyy-MM-dd">
- </el-date-picker>
- </el-form-item>
控制台:
后端Dto 使用Date接收,并添加@JsonFormat注解
- @JsonFormat(pattern="yyyy-MM-dd")
- private Date planSignTime;
结果:正常
注解解释:
@JsonFormat用于将前台传到后台字符串变量转换为Date类型,还可将后台返回前台的Date变量转换为字符串类型(常用)
@DateTimeFormat用于将前台传到后台字符串变量转换为Date类型
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。