Spring Boot中处理日期时间格式主要通过在实体类中使用注解@JsonFormat来完成。@JsonFormat是Jackson中的注解,可用于序列化和反序列化Java的日期和时间类型。
以下是处理日期时间格式的详细步骤:
-
在实体类的日期字段上添加@DateTimeFormat注解来指定日期时间格式,例如:yyyy-MM-dd。
-
在实体类的日期字段上添加@JsonFormat注解来控制日期时间格式的序列化和反序列化,例如:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")。
-
在控制器中通过@RequestParam或@RequestBody注解来接收请求参数并转换成日期格式,例如:
@RestController
@RequestMapping("/example")
public class ExampleController {
@GetMapping("/date")
public String getDate(@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
return date.toString();
}
@PostMapping("/entity")
public String getEntity(@RequestBody ExampleEntity entity) {
return entity.toString();
}
}
以上代码中,getDate方法使用@RequestParam注解接收日期字符串参数,通过@DateTimeFormat注解将日期字符串转换成日期对象并返回;getEntity方法使用@RequestBody注解接收实体类参数,通过@JsonFormat注解将日期字符串格式化成日期对象并返回。
以下是示例代码:
- 使用@RequestParam接收日期参数
实体类:
public class ExampleEntity {
private Integer id;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date date;
// getter、setter、toString方法省略
}
控制器:
@RestController
@RequestMapping("/example")
public class ExampleController {
@GetMapping("/date")
public String getDate(@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
return date.toString();
}
}
访问链接:
http://localhost:8080/example/date?date=2021-01-01
响应结果:
Fri Jan 01 00:00:00 CST 2021
- 使用@RequestBody接收实体类参数
实体类:
public class ExampleEntity {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date date;
// getter、setter、toString方法省略
}
控制器:
@RestController
@RequestMapping("/example")
public class ExampleController {
@PostMapping("/entity")
public String getEntity(@RequestBody ExampleEntity entity) {
return entity.toString();
}
}
访问链接:
http://localhost:8080/example/entity
请求体:
{
"date": "2021-01-01 00:00:00"
}
响应结果:
ExampleEntity[date=Fri Jan 01 00:00:00 CST 2021]
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot中是如何处理日期时间格式的 - Python技术站