暂时停留在这个问题上并且会欣赏一些输入。 我想从用户输入验证日期,以便我可以使用LocalDate对象执行计算。但是,当输入有效日期时,返回的日期是之前的无效日期,它会抛出异常并崩溃。 我错过了什么或做错了什么。
fill
答案 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提供的类来执行此操作。文档是你的朋友。