Я хотел проверить дату на стороне клиента, поэтому я написал следующий код. Но вместо получения исключения я получаю правильный объект даты для строки даты 31-го февраля, что явно недействительная дата.
public class Test {
public static void main(String[] args) {
String dateFormat = "HH:mm:ss MM/dd/yyyy";
String dateString = "11:30:59 02/31/2015";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(dateFormat, Locale.US);
try {
LocalDateTime date = LocalDateTime.parse(dateString, dateTimeFormatter);
System.out.println(date);
} catch (Exception e) {
// Throw invalid date message
}
}
}
Выход: 2015-02-28T11: 30: 59
Кто-нибудь знает, почему LocalDateTime
анализирует эту дату вместо того, чтобы бросать исключение.