@JsonFormat
是 Jackson 库中的一个注解,用于控制 Java 对象在序列化(转换为 JSON)和反序列化(从 JSON 转换为 Java 对象)时的日期和时间格式。它主要用于处理 Date
、Calendar
和 JSR310
(Java 8 及以上版本的日期时间 API)类型的字段。
基本用法
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class Example {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date date;
// getters and setters
}
参数说明
-
shape:
- 定义了日期时间字段的序列化格式。
JsonFormat.Shape.STRING
:将日期时间序列化为字符串。JsonFormat.Shape.NUMBER
:将日期时间序列化为数字(通常是时间戳)。
-
pattern:
- 定义了日期时间的格式字符串。
- 例如:
"yyyy-MM-dd HH:mm:ss"
表示年-月-日 时:分:秒。
-
timezone:
- 定义了日期时间的时区。
- 例如:
"GMT+8"
表示东八区。
-
locale:
- 定义了日期时间的本地化设置。
- 例如:
Locale.US
表示美国本地化。
示例
假设有一个包含日期时间的类:
import com.fasterxml.jackson.annotation.JsonFormat