-
[java] 유효한 날짜인지 체크하는 방법(Validation Date)프로그래밍 언어/자바 & 코틀린 2018. 11. 28. 20:52
validationDate java에서 유효한 날짜인지 체크하는 방법
아무 날짜가 스트링 형태로 입력값이 들어올 경우, 에러 메세지를 띄워주어야 하는 기능을 만들어야 했다. 우리 회사는 java7을 이용하기 때문에 java8에서 향상됐다는 datetime은 사용하지 못한다.
그래서 다른 방법을 찾았다. dateFormat의 setLenient를 사용하는 것이다. 여기서 Lenient의 사전적 의미는 '허술하다, 생각한 것보다 판단이나 처벌이 약하다’라는 뜻이다. java doc을 참조하면 아래처럼 설명하고 있다.
setLenient(boolean lenient) Specify whether or not date/time parsing is to be lenient.
날짜가 파싱될 때 허술하게 할 지 말지를 설정해주는 것으로 보인다. 그래서 setLenient(false)를 한다는 건 엄격하게 따지겠다는 의미 같다.
/** 입력 date가 yyyy-MM-dd 형태로 들어옴 */ public boolean validationDate(String checkDate){ try{ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false); dateFormat.parse(checkDate); return true;
}catch (ParseException e){ return false; } }
이렇게 체크할 경우, 유효한 날짜가 아니면 ParseException을 던질 것이고, 유효한 날짜라면 true로 반환할 것이다.
아래는 테스트 해본 코드이다.
public class ValidateDate { public static void main(String[] args){ ValidateDate validateDate = new ValidateDate(); System.out.println(validateDate.validationDate("2018-12-32")); } public boolean validationDate(String checkDate){ try{ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); dateFormat.parse(checkDate); return true;
}catch (ParseException e){ return false; } } } // 결과 값: false
날짜 유효성 체크 끝~!
'프로그래밍 언어 > 자바 & 코틀린' 카테고리의 다른 글
[Java] java 파일을 class 파일로 컴파일 하는 방법(한글 인코딩 포함) (0) 2019.01.30 [java] 두 날짜간 월 차이 구하기 (0) 2018.12.10 [java]DTO(또는 VO)에서 객체의 default 값 만들어주는 방법(Constructor of DTO) (0) 2018.11.20 DTO(혹은 VO)를 상속 받아서 사용할 경우 주의할 점! (0) 2018.09.18 자바 자료형 정리(Java Data Type) (0) 2018.07.23