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

问题描述 投票:0回答:1

这里,我正在尝试使用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)
java spring-mvc
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.