在RestController中日期类型的输入和输出

在使用 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)

本文标题:在RestController中日期类型的输入和输出

文章作者:Morning Star

发布时间:2020年01月19日 - 18:01

最后更新:2021年04月16日 - 15:04

原始链接:https://www.mls-tech.info/java/springboot-handle-datetime-param/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。