背景:
从数据库中获取日期类型的数据传到前台展示的是个时间戳类型并且时间少了八个小时,我们通过使用@JsonFormat注解就可以很好的解决后台到前台时间格式保持一致的问题。
从前台页面将时间类型的数据传入数据库中,这个时候前台传递给后台的时间格式同样是不一致的,我们通过使用@DataTimeFormat注解就可以很好的解决这个问题。
使用详情:
1. @JsonFormat
//timezone:是时间设置为东八区,避免时间在转换中有误差
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createDate;
2. @DataTimeFormat
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createDate;
3. 一般情况下是两个注解都写上
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createDate;
注意:
@JsonFormat是需要 jackson 的包,springboot默认使用 jackson 转换,不需要额外添加依赖
import com.fasterxml.jackson.annotation.JsonFormat;
如果要用阿里fastjson中的@JSONField注解就需要额外引入fastjson的jar了
<!-- fastjson格式转换 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency>
如果前端传过来的日期是标准格式 Mon Jun 21 2021 00:00:00 GMT+0800 (中国标准时间),则接收到的日期值为 null