当使用Spring Boot框架进行RESTful API开发时,经常会涉及到将日期格式化为特定格式的需求。常见的做法是使用@JsonFormat
注解实现日期格式自动格式化。
下面我来给你详细讲解一下实现日期格式自动格式化的攻略。
1. 引入依赖
在项目的pom.xml文件中引入Jackson依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.12.0</version>
</dependency>
2. 在实体类中使用@JsonFormat注解
在实体类的日期类型字段上使用@JsonFormat
注解,设置日期格式和时区。
示例1:
public class User {
private Integer id;
private String name;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
// 省略getter和setter方法
}
示例2:
public class Product {
private Integer id;
private String name;
@JsonFormat(pattern="yyyy年MM月dd日",timezone = "GMT+8")
private Date publishTime;
// 省略getter和setter方法
}
3. 测试效果
在Controller层编写测试接口,返回实体类对象,查看返回的json字符串是否按照设置的日期格式自动格式化。
示例1:
@RestController
public class UserController {
@GetMapping("/user/{id}")
public User getUser(@PathVariable("id") Integer id){
User user = new User();
user.setId(id);
user.setName("张三");
user.setCreateTime(new Date());
return user;
}
}
请求/user/1
接口,返回结果:
{
"id": 1,
"name": "张三",
"createTime": "2021-11-11 11:11:11"
}
可以看到,createTime
字段自动格式化成了指定格式的日期字符串。
示例2:
@RestController
public class ProductController {
@GetMapping("/product/{id}")
public Product getProduct(@PathVariable("id") Integer id){
Product product = new Product();
product.setId(id);
product.setName("商品");
product.setPublishTime(new Date());
return product;
}
}
请求/product/1
接口,返回结果:
{
"id": 1,
"name": "商品",
"publishTime": "2021年11月11日"
}
同样可以看到,publishTime
字段自动格式化成了指定格式的日期字符串。
总结:使用@JsonFormat
注解实现日期格式自动格式化,非常方便快捷,只需在实体类的日期类型字段上添加注解即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:@JsonFormat 实现日期格式自动格式化 - Python技术站