Проверка даты не работает - PullRequest
1 голос
/ 01 марта 2011

Проверка даты не работает должным образом.Если день = 90, месяц = ​​1 и год = 1990 Проверка не работает.Это переключает дату на март, без проверки.Как я могу это проверить?

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");

Date date;

try {
    date = formatter.parse(day + "/" + month + "/" + year);
} catch (ParseException e) {
    error = Boolean.TRUE;
    errorMessage = "Invalid date";
    return null;
}

Ответы [ 2 ]

3 голосов
/ 01 марта 2011

Посмотрите на метод setLenient(), который по умолчанию тупо равен true.

Тем не менее, я думаю, что все еще есть некоторые проблемы, даже если он установлен на false.Возможно, вы захотите взглянуть на JodaTime, что делает это намного проще.

1 голос
/ 01 марта 2011

Вы что-то упустили.Simpledataformat просто проверит формат данных.Дата будет перенесена, если дата недействительна (30 февраля становится 1 марта).Поэтому после проверки формата также проверьте, совпадает ли дата.

(! Sdf.format (date) .equals (dateString)) {errorMessage = "Дата, указанная вами, недействительна.";вернуть ложь;}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...