Обработка исключения синтаксического анализа в формате даты из средства выбора даты - PullRequest
0 голосов
/ 16 марта 2020

Здесь я пытаюсь обработать дату начала моей системы бронирования, а также дату окончания, используя 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 голосов
/ 16 марта 2020

Формат, который вы пытаетесь проанализировать, отличается от формата, который вы получаете, либо потому, что у пользователя задан неправильный формат, либо потому, что вы использовали неправильный формат для анализа.

Вы пытаетесь выполнить синтаксический анализ dd/MMM/yyyy формат, который будет выглядеть как 03 / Oct / 2020, но вы получите либо dd/MM/yyyy, либо MM/dd/yyyy, из сообщения об ошибке вы получите 03/10/2020, который может быть либо. Вам необходимо проверить ожидаемый ввод и скорректировать код синтаксического анализа или запросить у пользователя конкретный формат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...