我的控制器方法
@GetMapping("/fetch/{one_date}/{two_date}")
public List<CourierInfo> getData_between(@PathVariable(value = "one_date") @DateTimeFormat(pattern = "dd-MM-yyyy HH:mm:ss") Date fromDate, @PathVariable(value = "two_date") @DateTimeFormat(pattern = "dd-MM-yyyy") Date toDate) throws Exception{
System.out.println(fromDate);
System.out.println(toDate);
String date1 = "20-01-2020";
String date2 = "24-01-2020";
Date d1 = new SimpleDateFormat("dd-MM-yyyy").parse(date1);
Date d2 = new SimpleDateFormat("dd-MM-yyyy").parse(date2);
return bookRepository.getData_between(d1, d2);
}
我的网址是我传递的日期
http://localhost:8080/book_api/fetch/20-01-2020/24-01-2020
我收到此错误
无法将类型“ java.lang.String”的值转换为必需的类型“ java.util.Date”;嵌套异常是org.springframework.core.convert.ConversionFailedException:无法从[java.lang.String]类型转换为[@ org.springframework.web.bind.annotation.PathVariable @ org.springframework.format.annotation.DateTimeFormat类型java.util.Date]的值为“ 20-01-2020”;嵌套的异常为java.lang.IllegalArgumentException:尝试解析值[20-01-2020]失败
如何解决此错误。我尝试了不同的事情。
答案 0 :(得分:1)
尝试为
更改DateTimeFormat@PathVariable(value = "one_date") @DateTimeFormat(pattern = "dd-MM-yyyy HH:mm:ss")
到
@PathVariable(value = "one_date") @DateTimeFormat(pattern = "dd-MM-yyyy")
您仅输入日期,但您还指示格式化程序格式化时间。