理解和使⽤@DateTimeFormat和@JsonFormat注解
详细的理解参照
blog.csdn/qq_28483283/article/details/81326365
两者使⽤时,都要注意!⾃⼰想要的时间类型是什么样的,如果只是⽤到⽇期到天,那么格式就是(pattern=”yyyy-MM-dd”),想要时分秒的话,那么就要加上HH:mm:ss,因为前后台都需要传数据,所以需要保持⼀致,否则就会报错误,⽐如:⽇志管理的时候,我没有加时分秒,但是我页⾯传递了时分秒,所以导致数据进⼊后台时分秒是00:00:00,就会导致同⼀天的数据查询为空的bug,注意
@JsonFormat、@JSONField、@DateTimeFormat的使⽤以及其区别
1、JsonFormat来源于jackson,Jackson是⼀个简单基于Java应⽤库,Jackson可以轻松的将Java对象转换成json对象和xml⽂档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易⽤并且性能也要相对⾼些,并且Jackson社区相对⽐较活跃,更新速度也⽐较快。
2、JSONField来源于fastjson,是阿⾥巴巴的开源框架,主要进⾏JSON解析和序列化。
3、DateTimeFormat是spring⾃带的处理框架,主要⽤于将时间格式化。
@DateTimeFormat使⽤⽅法:
我们可以使⽤@DateTimeFormat注解将⼀个字符串转成⼀个Date对象,pojo类上的哪个Date类型的字段需要,就需要⽤
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 标记,这样前端页⾯传递过来的String类型的时间 '2016-11-11 11:11:11' 会转换为Date 类型
原因是:页⾯将数据传到后台,是以字符串的形式。所以时间格式会出错。加上此注解,后台可解析时间格式的字符串。
但需要注意⼀下事项:
1.如果是⼩写的hh,那个值代表着1-12,⽐如,我是在下午16:30传⼊参数的,⽽⼩写的h最⼤只能接受12的值,传⼊16就出错了,所有⽆法将String转为Date类型。
spring framework是什么框架的2. 可以使⽤在字段上也可以使⽤在⽅法中。如: public String
test2(@RequestParam("uid") int id,
@DateTimeFormat(pattern="yyyy-MM-dd")Date date,
UserInfo user) {}
3.需要导⼊joda-time.jar包,maven的配置⽅式为:
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.6</version>
</dependency>
4.需要启动mvc中的注解驱动 <mvc:annotation-driven />
xmlns:mvc="/schema/mvc"
/schema/mvc
/schema/mvc/spring-mvc.xsd">
<!-- 启⽤mvc中的注解驱动 -->
<mvc:annotation-driven></mvc:annotation-driven>
@JsonFormat
但是后台传到前台,前台没办法解析。需要做如下操作。
@JsonFormat(pattern=”yyyy-MM-dd”)
⽤法为在属性值上 @JsonFormat(pattern=”yyyy-MM-dd”,timezone=”GMT+8”),如果直接使⽤ @JsonFormat(pattern=”yyyy-MM-dd”)就会出现2018-08-01 08:00:00的情况,会相差8个⼩时,因为我们是东⼋区(北京时间)。所以我们在格式化的时候要指定时区(timezone )
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论