导言
最近公司开始弄国外项目,后来发现数据时间不对,我开始以为是默认的utc0时区,后来发现实际上是服务器时区。通过查资料终于时区问题。
写入
数据写入的时候需要把时区设置为0时区。
1 |
|
使用
在后台使用是使用的Jackson库来序列化
并且我么能使用了自定义序列化,所以只需在DateFormat的时候统一指定GMT+8 即可1
2
3
4
5
6
7
8
9
10
11public class CustomDateTimeSerializer extends JsonSerializer<Date> {
public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//这里很关键,别写错了
formatter.setTimeZone(TimeZone.getTimeZone("GMT+8"));
String formattedDate = formatter.format(date);
jsonGenerator.writeString(formattedDate);
}
}
在需要序列化的字段上加上这个注解,即可1
2 (using = CustomDateTimeSerializer.class)
private Date createTime;