📜  Jackson注释-@JsonFormat(1)

📅  最后修改于: 2023-12-03 15:15:54.152000             🧑  作者: Mango

Jackson注释-@JsonFormat

@JsonFormat 是 Jackson 提供的一个注释,可用于日期和时间格式的序列化和反序列化。

该注释提供了以下属性:

  • pattern:指定日期和时间的格式。例如,"yyyy-MM-dd HH:mm:ss" 表示日期为 "年-月-日"、时间为 "小时:分钟:秒"。
  • timezone:指定时区。例如,"GMT+8" 表示东八区时间。
  • locale:指定语言环境。例如,"en_US" 表示英文语言环境。
  • shape:指定序列化后的日期和时间格式。例如,JsonFormat.Shape.STRING 表示以字符串形式进行序列化。

示例代码:

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

public class Event {
  private String name;
  
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  private Date date;
  
  // getters, setters
}

上述代码中,定义了一个 Event 类,其中包含一个名称和一个日期。使用 @JsonFormat 注释定义了 date 属性的日期格式为 "年-月-日 时:分:秒",时区为东八区时间。在序列化时,该日期属性将会按照定义的格式进行序列化。

对于前面的代码,如果我们将一个 Event 对象序列化为 JSON 字符串,格式如下:

{
  "name": "New Year's Eve",
  "date": "2021-12-31 23:59:59"
}

备注:本文参考了官方文档,并根据实际情况进行了简化和修改。