springboot 使用RequestBody接收日期类型可以正常转换为什么url传参直接用对象接收时日期属性就转换失败了?怎么解决?代码举例说明
问题分析:
在SpringBoot中,使用RequestBody接收日期类型时,Spring会自动根据格式将字符串转换为日期类型,而使用对象接收时,会调用默认的构造函数,然后再根据setter方法给对象属性赋值。但是,由于日期格式的不确定性,导致无法正确转换。
解决方法:
- 自定义日期格式
可以通过在对象上注解@JsonFormat来指定日期格式,例如:
public class User {
@JsonFormat(pattern = "yyyy-MM-dd")
private Date birthday;
//getter and setter
}
这样就可以正确地将字符串转换为日期类型。
- 使用@RequestParam注解
可以使用@RequestParam注解来指定日期格式,例如:
@GetMapping("/user")
public String getUser(@RequestParam("birthday") @DateTimeFormat(pattern="yyyy-MM-dd") Date birthday) {
// ...
}
这样就可以正确地将字符串转换为日期类型。
总结:
使用RequestBody接收日期类型时,Spring会自动根据格式将字符串转换为日期类型;而使用对象接收时,需要指定日期格式或使用@RequestParam注解来指定
原文地址: https://www.cveoy.top/t/topic/huyU 著作权归作者所有。请勿转载和采集!