前言
今天出现了一个小BUG,时间类型数据格式化时出现误差(八小时)。
数据库是MySQL,字段类型为datetime
。
Java成员属性类型为Timestamp
。
使用了@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
注解,虽然能解析但是却有八小时的误差,最终原因是未设置时区引起的。
项目中导入所需Jar包
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0.pr3</version>
</dependency>
@JsonFormat注解
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.date;
import java.sql.Timestamp;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date create_time;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Timestamp update_time;
//pattern设置格式化的格式
//timezone设置时区(不设置有可能出现八小时的误差)