前后端date类型传值问题

 以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类型

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值