Я получаю исключение нулевого указателя, когда пользователь вводит дату в неправильном формате.
Метод преобразования строки в дату
Date stringToDate(String dateString) {
Date returnDate = null;
if (dateString!= null && dateString.length() > 0 && isValidDate(dateString)) {
returnDate = dateFormat.parse(dateStr);
}
return returnDate;
}
и
boolean isValidDate(String date) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
Pattern datePattern = Pattern.compile("[0-9]{2}/[0-9]{2}/[0-9]{4}");
Matcher datePatternMatch = datePattern.matcher(date);
boolean datePatternMatchfound = datePatternMatch.matches();
if(date==null){
return false;
} else if(date!=null && date.length()>0){
if(datePatternMatchfound){
sdf.setLenient(false);
sdf.parse(date.trim());
}
return true;
} else {
return false;
}
}
Мне просто интересно узнать ....
1) Каким должен быть действительный шаблон для даты?
2) если пользователь введет неправильную дату, метод stringToDate обязательно потерпит неудачу и выдаст исключение нулевого указателя. Как этого избежать?
Любая помощь будет принята с благодарностью.