无法将字符串转换为日期类型

时间:2020-01-23 13:19:50

标签: java rest spring-boot

我的控制器方法

@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]失败

如何解决此错误。我尝试了不同的事情。

1 个答案:

答案 0 :(得分:1)

尝试为

更改DateTimeFormat
@PathVariable(value = "one_date") @DateTimeFormat(pattern = "dd-MM-yyyy HH:mm:ss")

@PathVariable(value = "one_date") @DateTimeFormat(pattern = "dd-MM-yyyy")

您仅输入日期,但您还指示格式化程序格式化时间。