@JsonFormat与@DateTimeFormat注解的使⽤
背景:从数据库获取时间传到前端进⾏展⽰的时候,我们有时候可能⽆法得到⼀个满意的时间格式的时间⽇期,在数据库中显⽰的是正确的时间格式,获取出来却变成了很丑的时间戳,@JsonFormat注解很好的解决了这个问题,我们通过使⽤@JsonFormat可以很好的解决:后台到前台时间格式保持⼀致的问题,其次,另⼀个问题是,我们在使⽤WEB服务的时,可能会需要⽤到,传⼊时间给后台,⽐如注册新⽤户需要填⼊出⽣⽇期等,这个时候前台传递给后台的时间格式同样是不⼀致的,⽽我们的与之对应的便有了另⼀个注
解,@DataTimeFormat便很好的解决了这个问题,接下来记录⼀下具体的@JsonFormat与DateTimeFormat的使⽤过程。
声明:关于@JsonFormat的使⽤,⼀定要导⼊正确完整的包。
1.注解@JsonFormat
1.使⽤maven引⼊@JsonFormat所需要的jar包,我贴⼀下我这⾥的pom⽂件的依赖
<!--JsonFormat-->
<dependency>
<groupId>com.</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.8</version>
</dependency>
<dependency>
<groupId>com.</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
<dependency>
<groupId&dehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
2.在你需要查询出来的时间的数据库字段对应的实体类的属性上添加@JsonFormat
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
public class TestClass {
//设置时区为上海时区,时间格式⾃⼰据需求定。
@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
private Date testTime;
public Date gettestTime() {
return testTime;
}
public void settestTime(Date testTimee) {
}
}
这⾥解释⼀下:@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
pattern:是你需要转换的时间⽇期的格式
timezone:是时间设置为东⼋区,避免时间在转换中有误差
提⽰:@JsonFormat注解可以在属性的上⽅,同样可以在属性对应的get⽅法上,两种⽅式没有区别
3.完成上⾯两步之后,我们⽤对应的实体类来接收数据库查询出来的结果时就完成了时间格式的转换,再返回给前端时就是⼀个符合我们设置的时间格式了java时间日期格式转换
2.注解@DateTimeFormat
1.@DateTimeFormat的使⽤和@jsonFormat差不多,⾸先需要引⼊是spring还有jodatime,spring我就不贴了
<!-- joda-time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
</dependency>
2.在controller层我们使⽤spring mvc 表单⾃动封装映射对象时,我们在对应的接收前台数据的对象的属性上加@@DateTimeFormat
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symstarttime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date symendtime;
我这⾥就只贴这两个属性了,这⾥我两个注解都同时使⽤了,因为我既需要取数据到前台,也需要前台数据传到后台,都需要进⾏时间格式的转换,可以同时使⽤
3.通过上⾯两个步骤之后,我们就可以获取⼀个符合⾃定义格式的时间格式存储到数据库了
总结:
注解@JsonFormat主要是后台到前台的时间格式的转换
注解@DataFormAT主要是前后到后台的时间格式的转换

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