问题分析:

在SpringBoot中,使用RequestBody接收日期类型时,Spring会自动根据格式将字符串转换为日期类型,而使用对象接收时,会调用默认的构造函数,然后再根据setter方法给对象属性赋值。但是,由于日期格式的不确定性,导致无法正确转换。

解决方法:

  1. 自定义日期格式

可以通过在对象上注解@JsonFormat来指定日期格式,例如:

public class User {
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
    //getter and setter
}

这样就可以正确地将字符串转换为日期类型。

  1. 使用@RequestParam注解

可以使用@RequestParam注解来指定日期格式,例如:

@GetMapping("/user")
public String getUser(@RequestParam("birthday") @DateTimeFormat(pattern="yyyy-MM-dd") Date birthday) {
    // ...
}

这样就可以正确地将字符串转换为日期类型。

总结:

使用RequestBody接收日期类型时,Spring会自动根据格式将字符串转换为日期类型;而使用对象接收时,需要指定日期格式或使用@RequestParam注解来指定

springboot 使用RequestBody接收日期类型可以正常转换为什么url传参直接用对象接收时日期属性就转换失败了?怎么解决?代码举例说明

原文地址: https://www.cveoy.top/t/topic/huyU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录