在使用 RestController 处理用户的输入、输出数据时,常常需要处理日期、时间类型的数据。
实际上,在 Spring Boot 中,只要确定了日期,时间的格式,处理起来是非常简单的,只需要在数据模型中加入 @JsonFormat 指定格式即可。例如在 Todo案例中, 我们在数据模型 Todo 中新增一个日期型的属性: createdDate, 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Data @NoArgsConstructor @AllArgsConstructor public class TodoBean {
private Long id;
private String title;
private String desc;
private Date createdDate; }
|
如果确定该属性输入输出的格式为: “yyyy-MM-dd”, 则只需要在属性 createdDate 上增加 @JsonFormat 注解即可,修改后的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Data @NoArgsConstructor @AllArgsConstructor public class TodoBean {
private Long id;
private String title;
private String desc;
@JsonFormat(pattern = "yyyy-MM-dd") private Date createdDate; }
|
运行测试代码可以看到以下输入:
GET 方法,返回待办事项列表:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [ { "id": 1, "title": "todo 1", "desc": "desc 1", "createdDate": "2020-01-20" }, { "id": 2, "title": "todo 2", "desc": "desc 2", "createdDate": "2020-01-20" } ]
|
POST 方法,构造 RequestBody 如下:
1 2 3 4 5 6
| { "id": 3, "title": "todo 3", "desc": "desc 3", "createdDate": "2019-03-25" }
|
提交后,在后台可以观察日志如下:
1
| Receive a new Todo: TodoBean(id=3, title=todo 3, desc=desc 3, createdDate=Mon Mar 25 08:00:00 CST 2019)
|