我很难找到我的工作 getDate
工作方法。我提示用户输入日期样式mm/dd/yyyy作为字符串。我需要将字符串转换为日期对象并返回它。
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public static String getDate(String prompt) {
String dateAsString = getString(prompt);
do {
System.out.println(prompt);
dateAsString = keyboard.nextLine();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("M/d/yyyy");
LocalDate dateAsString1=formatter.parse(dateAsString1);
}
while (dateAsString == null || dateAsString.length() < 1);
return dateAsString;
}
2条答案
按热度按时间pepwfjgg1#
您当前的方法做的事情太多了。只需将
String
您想转换为LocalDate
和使用LocalDate.parse(CharSequence, DateTimeFormatter)
要分析它String
并返回结果。大概,为了测试它,我做了
最后,我建议为您的方法提供清晰和独立的关注点。这样调试就容易多了。
2j4z5cfb2#
datetimeformatter没有任何名为“.parse()”的方法。只有localdate具有“.parse()”方法,我们需要传递
String
及DateTimeFormatter
因为parse()
功能。当给定的字符串与模式不匹配时,它将抛出一个错误(DateTimeParseException
) ! 所以我添加了try-and-catch方法