Java LocalDate输入验证

时间:2018-04-08 13:30:58

标签: java validation date user-input

暂时停留在这个问题上并且会欣赏一些输入。 我想从用户输入验证日期,以便我可以使用LocalDate对象执行计算。但是,当输入有效日期时,返回的日期是之前的无效日期,它会抛出异常并崩溃。 我错过了什么或做错了什么。

fill

2 个答案:

答案 0 :(得分:3)

从字符串中获取本地日期的正确方法是使用DateTimeFormatter

    String str = "24/09/2017";
    DateTimeFormatter dt = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    LocalDate date = LocalDate.parse(str, dt);

答案 1 :(得分:2)

您以递归方式调用该方法,但忽略它返回的内容。取代

System.out.print(e.getMessage() + "\n");    
inputDate(sc);

通过

System.out.print(e.getMessage() + "\n");    
return inputDate(sc);

但实际上,你不应该重新发明LocalDate解析。使用Java API提供的类来执行此操作。文档是你的朋友。