从日期选择器处理解析为日期格式的异常

时间:2020-03-16 13:20:07

标签: java spring-mvc

在这里,我尝试使用LocalDate和格式化的日期来处理预订系统的开始日期和结束日期。我已经对出现的错误进行了一些搜索,但是,它们不处理类似的问题。像这里一样,我需要使用request.getParameter来获取用户输入。

        //Getting input values from jsp from 
        String cruiseName = request.getParameter("cruiseName");
        DateTimeFormatter df = DateTimeFormatter.ofPattern("dd/MMM/yyyy");

        LocalDate startDate =(LocalDate) LocalDate.parse(request.getParameter("startDate"),df);

        LocalDate endDate =(LocalDate) LocalDate.parse(request.getParameter("endDate"),df);

错误消息:

Exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.time.format.DateTimeParseException: Text '03/10/2020' could not be parsed at index 3
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)** 

Root Cause:
java.time.format.DateTimeParseException: Text '03/10/2020' could not be parsed at index 3
    java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2049)
    java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1951)
    java.base/java.time.LocalDate.parse(LocalDate.java:428)

1 个答案:

答案 0 :(得分:0)

您尝试解析的格式与您获得的格式不同,这可能是因为用户要求的格式不正确,或者是因为您使用了错误的格式来解析。

您正尝试解析看起来像03 / Oct / 2020的dd/MMM/yyyy格式,但是从得到03的错误消息中,您获得的格式是dd/MM/yyyyMM/dd/yyyy。可以是2020年10月10日。您需要检查预期的输入并调整解析代码,或询问用户特定的格式。