У меня есть код ниже, и он работает довольно хорошо, за исключением того, что если вы введете что-то вроде 2/2/2011, вы получите сообщение об ошибке «Дата документа не является действительной датой». Я ожидаю, что в нем будет указано «Дата документа должна быть в формате ММ / ДД / ГГГГ».
Почему строка newDate = dateFormat.parse(date);
не улавливает это?
// checks to see if the document date entered is valid
private String isValidDate(String date) {
// set the date format as mm/dd/yyyy
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date newDate = null;
// make sure the date is in the correct format..
if(!date.equals("mm/dd/yyyy")) {
try {
newDate = dateFormat.parse(date);
} catch(ParseException e) {
return "The Document Date needs to be in the format MM/DD/YYYY\n";
}
// make sure the date is a valid date..
if(!dateFormat.format(newDate).toUpperCase().equals(date.toUpperCase())) {
return "The Document Date is not a valid date\n";
}
return "true";
} else {
return "- Document Date\n";
}
}
РЕДАКТИРОВАТЬ: Я пытаюсь обеспечить строгое соблюдение формата MM / DD / YYYY. Как я могу изменить код, чтобы, если пользователь вводит «2/2/2011», он будет отображать сообщение: «Дата документа должна быть в формате ММ / ДД / ГГГГ»?