Calendar Dialog 를 이용해서 날짜를 입력받는데 연도선택하는 부분이 눈에 띄지 않아 매우 불편하다

그래서 2020-02-03 형식으로 입력하도록 만들려고 하는데

입력받은 날짜가 올바른지 검증이 필요하다

기본적인 형식뿐 아니라 2월 29일이 있는지 없는지는 알아야 한다.

 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.KOREA);
sdf.setLenient(false);
sdf.parse("2020-02-12");

setLenient(false) 를 사용하면 해결 할 수 있다.

 

    public boolean checkDate(String formDate){
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.KOREA);
            sdf.setLenient(false);
            sdf.parse(formDate);
            return true;
        } catch (ParseException e) {
            e.printStackTrace();
            return false;
        }
    }

예외를 발생시킨다.

사용전 후 비교값 이다 

//setLenient(false) 사용후
2020-02-29 : 정상
2021-02-29 : 오류
2021-02-211 : 오류
2021-23-21 : 오류
// setLenient(false) 사용전
2020- : 오류
2020-12-12 : 정상
2020-12-124 : 정상
2020-12-1241 : 정상
2020-1332-1241 : 정상
203320-1332-1241 : 정상

+ Recent posts