赞
踩
项目中大家肯定都遇到过前端传时间参数给后端,最常见的时间格式为年月日(如:2022-10-26)或者就是带上时分秒的时间格式比如(2022-10-26 16:18:49),我们数据库一般都是使用时间戳格式(也就是带时分秒的时间格式),那么我们一般是如何处理时间格式的呢?通常有两种方法:
方式一:
实体类中采用字符串接收,然后再进行转换处理(此方法简单并且可以很方便的分辨出参数是否有误,但需要来回转换,因此比较繁琐,而且代码显得臃肿,因此我们不推荐该方式)
方式二:
实体类中直接采用时间格式去接收,因为本来就是时间,因此我们直接用时间格式才是最好的, 但是由于时间格式在java8之前是Date,并且由于Date并不能正确接收到时间 ,因此我们需要利用别的手段来帮助接收时间类型。我们常见的方式有给字段添加@DateTimeFormat或者@JsonFormat等注解的形式
我看我们项目中这两个注解都有使用,而我自己不是很清晰这两个注解的使用场景及区别,因此查阅了网上的资料,但是我发现网上的文章里面很多都没有抓到重点(教大家如何区分什么时候使用哪个注解),我看其它文章里面都是强调如下内容,但是使用时的注意事项根本没有说明清楚
注解@JsonFormat主要是后台到前台的时间格式的转换
注解@DataFormAT主要是前后到后台的时间格式的转换
提示:以上说法不是错误的,只是说法不全面而已
相同点
不同点
提示:@DateTimeFormat和@JsonFormat注解一般是针对于Date和LocalDateTime类型使用,LocalDate类型不需要使用
@DateTimeFormat
@JsonFormat
@DateTimeFormat
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
@JsonFormat
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date date;
根据上面的区别我们就很容易的区分处何时用哪个注解了吧,小面小结一下吧:
@DateTimeFormat
@JsonFormat
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。