MENU

Java 날짜의 유효성 및 존재 확인

목차

Java 날짜의 타당성・존재 체크 Calendar.setLenient()

Java에서날짜의 유효성 및 존재 확인하는 샘플 프로그램입니다.
지정된 날짜 문자열(yyyy/MM/dd 또는 yyyy-MM-dd)이 달력에 있는지 확인합니다.

java.text.DateFormat수업setLenient()에 false를 지정하면 날짜 분석을 엄격하게 수행할 수 있습니다. (※DateFormat 클래스는 내부적으로는java.util.Calendar 클래스의 setLenient()전화합니다. )
부정한 일자나, 존재하지 않는 일자로 parse() 메소드를 호출하면(자), ParseException가 발생하는 것을 이용한 체크 방법이 됩니다.


샘플 프로그램

/** * 날짜의 유효성을 확인합니다. * 지정된 날짜 문자열(yyyy/MM/dd or yyyy-MM-dd)이 * 달력에 존재하는지 여부를 반환합니다. * @param strDate 체크 대상의 캐릭터 라인 * @return 존재하는 일자의 경우 true */ public static boolean checkDate(String strDate) { if (strDate == null || strDate.length() != 10) { throw new IllegalArgumentException ( "인수 문자열 ["+ strDate +"]" + "은 잘못되었습니다."); } strDate = strDate.replace('-', '/'); DateFormat format = DateFormat.getDateInstance(); // 날짜/시간 분석을 엄격하게 수행할지 여부를 설정합니다. format.setLenient(false); try { format.parse(strDate); return true; } catch (Exception e) { return false; } }

실행 결과

◆실행예

public static void main(String[] args) { System.out.println(checkDate("2007-01-01")); System.out.println(checkDate("2007/02/31")); System.out .println(checkDate("aaaa/02/31")); }

◆출력 결과

true false false
  • URL을(를) 확인했습니다!
목차