@JsonFormat 处理 LocalDateTime 失效

Failed to convert property value of type ‘java.lang.String’ to required type ‘localdatetime’ for property ‘time’ xxxx

Api 请求参数中,通过需要用时间LocalDateTime,希望通过@JsonFormat() 处理时间格式:

@GetMapping("/user")
public UserDTO getUser(UserDTO name) {
	xxx
}

@Data
public class UserDTO {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    LocalDateTime time;
}

当我们通过get请求,通过表单的方式提交时,就会报上面按个转换异常参数;
解决方案:改成请求体的方式提交,@RequestBody ;

	//get请求
    @GetMapping("/user")
    public UserDTO getUser(@RequestBody UserDTO name) {
    }
    // post 请求
    @PostMapping("/user")
    public UserDTO getUser(@RequestBody UserDTO name) {
    }

方案二:同时添加@DateTimeFormat()注解这个是Spring提供的注解

@Data
public class UserDTO {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    LocalDateTime time;
}

@DateTimeFormat 用于将请求参数序列化
@JsonFormat() 将返回参数序列话

你可能感兴趣的:(java,知识分析)