jackson 格式化注解:@JsonFormat格式化日期时间

案例-controller返回json时格式化

mybatis 从数据库查询 datetime 等时间类型,controller返回json,需要做时间格式化,否则显示有问题

解决

建一个DTO,在实体类 时间字段 上加上注解 @JsonFormat

如下:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;

在转换 controller 返回json时,会自动格式化

指定时区

可以指定时区:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

案例-controller接收自定义时间类型数据

前端提交 JSON 格式字符串中,有datetime类型,但不是标准格式

yyyy-MM-dd HH:mm:ss

而是自定义格式,如:

yyyy/MM/dd HH:mm

导致controller报错 400,不能传入 Date 类型成员变量中

解决

建一个 VO,在 时间字段 上加上注解 @JsonFormat

如下:

@JsonFormat(pattern = "yyyy/MM/dd HH:mm")
private Date dateTime;

controller:

@PostMapping("/test")
public JsonResult add( @RequestBody VO vo)

指定时区

可以指定时区:

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")