Kann mir jemand erklären, wie man die folgende Methode erhält, um einen Wert von false
für den angezeigten Eingang zurückzugeben? Es gibt true
, was ich nicht erwarte.Warum wird ein ungültiges Datum erfolgreich als echtes Datum analysiert?
isDateValid("19/06/2012 5:00, 21:00","dd/MM/yyyy HH:mm")
ich denke, das false
zurückgeben sollte, aber anscheinend Java so nicht denken. Die aktuelle Datumszeichenfolge enthält diese zusätzlichen Zeichen am Ende: ", 21:00"
.
public static boolean isDateValid(String date, String dateFormat)
{
try {
DateFormat df = new SimpleDateFormat(dateFormat);
df.setLenient(false);
Date newDate = df.parse(date);
System.out.println("Date value after checking for validity: " + newDate);
return true;
} catch (ParseException e) {
return false;
}
}