목차
Java 날짜 문자열을 java.util.Date 유형으로 얻기
Java에서 날짜 문자열 (형식 yyyy/MM/dd) java.util.Date 형식으로 변환하는 샘플 프로그램입니다.
샘플 코드
/** * 날짜 문자열 "yyyy/MM/dd"를 java.util.Date 형식으로 변환합니다. * @param str 변환 대상의 캐릭터 라인 * @return 변환 후의 java.util.Date 오브젝트 * @throws ParseException 일자 캐릭터 라인이 "yyyy/MM/dd" 이외의 경우 */ public static Date toDate(String str) throws ParseException { Date date = DateFormat.getDateInstance().parse(str); return date; }
실행 결과
샘플 프로그램
public static void main(String[] args) { try { // 일반 패턴 Date date = toDate("2007/01/01"); System.out.println(date); // 형식이 다른 패턴 date = toDate ("2007-01-01"); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } }
출력 결과
2007/01/01='Mon Jan 01 00:00:00 JST 2007'
yyyy/MM/dd의 날짜 문자열이 올바르게 변환된 것처럼 보이지만 yyyy-MM-dd에서는 어떻습니까?
java.text.ParseException: Unparseable date: "2007-01-01" at java.text.DateFormat.parse(DateFormat.java:335) at Main.toDate(DateUtil.java:627) at Main.main(DateUtil.java :639)
yyyy-MM-dd에서 ParseException이 발생했습니다.
DateFormat 서브 클래스의 java.text.SimpleDateFormat 를 사용하여 아래와 같이 기술하면 변환할 수 있습니다만,
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); format.parse("2007-01-01");
좀 더 범용적인 프로그램을 원하네요.
다음은 모든 일자 캐릭터 라인을 가능한 한, java.util.Date 형에 변환하는 방법을 소개합니다.
"모든 날짜 / 시간 문자열을 Date, Calendar 형식으로 변환"