⽹上关于解释@JsonFormat和@DateTimeFormat的坑在⽹上看了很多,⼤部分⼈就是复制粘贴解释,如下
pattern属性-- @JsonFormat(timezone = "GMT+8",pattern="yyyy-MM-dd")
timezone:时区,设置为东⼋区,避免时间在转换中有误差
pattern:要转换成的时间格式
说明:@JsonFormat注解,可以置于属性上⽅,也可以置于属性对应get⽅法上⽅。
@JsonFormat:主要是后台到前台的时间格式的转换
@DateTimeFormat:主要是前后到后台的时间格式的转换
真的服了,真希望各位在发⽂章时能⾃⼰试试在发布,⼏个⼈发错了,⼀⼈全都复制粘贴转载,错的⼈越来越多,害…今天在写接⼝时发现问题,前端传给后端的数据我⽤ @DateTimeFormat
并没有得到我想要的类型数据
直接贴图:
可以看到访问直接报错,原以为是会把数据的时分秒给截掉
再看下⾯
访问成功!
多次尝试后得出结论:
1.@DateTimeFormat 并不会根据得到其属性 pattern 把前端传⼊的数据转换成⾃⼰想要的格式,⽽是将前端的String类型数据封装到Date类型;其次它的 patte rn 属性是⽤来规范前端传⼊数据的格式
2.@DateTimeFormat 它⽤于前端⽇期String数据提交封装到⽇期Date数据类型中
@JsonFormat 测试
可以看到时间参数的时间被改成了 00:00:00,8时是时区问题。
放⾏后可以看到返回的数据被截取了,按照其 pattern 属性设置规则截取
结论:
1.@JsonFormat 会对前端传来的数据进⾏处理,按照其 pattern 属性定义把传⼊的数据多余的补0
2.@JsonFormat 同样会对后端传给前端的数据进⾏处理,按照其 pattern 属性定义直接进⾏截取返回给前端总结:
1.@JsonFormat 和@DateTimeFormat⽤于String类型对Date类型的封装
2.@JsonFormat t同时会对后端数据传给前端Json字符串⽇期截取,
按照其 pattern 属性定义截取
3.前端JSON字符串yyyy-MM-dd HH:mm:ss 类型想要封装给LocalDateTime类型
需要⽤@JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss")
4.D ate类型前端不能直接传 yyyy-MM-dd HH:mm:ss 格式字符串,
但是可以直接传 yyyy-MM-dd 格式,数据库会存储带补全的时分秒数据
暂时就是这样,菜鸡⼀个,如果有问题欢迎⼤家指正、交流!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。