오늘은 String 타입의 Date 값을 Date 타입으로 변환하는 것에 대해 써볼까 합니다.
제가 이 변환법을 사용한 곳은 아래 소스와 같이 일단 날짜 값만 가져온 상황에서 원하는 시간 값을 더해서 Date 형으로 변환하는 부분입니다.
1. 일단 현재 날짜 값을 얻은 뒤 String 형으로 만듭니다.
java.text.SimpleDateFormat sdfNow = new java.text.SimpleDateFormat("yyyyMMdd");
String now = sdfNow.format(new java.util.Date(System.currentTimeMillis()));
2. 이제 원하는 Date값을 만듭니다.
String wantTime = now + "120000"; // 오늘 날짜에 12시 00분 00초를 의미.
3. 이제 Date 형으로 변환합니다.
java.util.Date wantDate = null;
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
try
{
wantDate = sdf.parse(wantTime);
}
catch(ParseException ex) // or catch(Exception ex)
{
ex.printStackTrace();
}
or
java.util.Date wantDate = null;
try
{
wantDate = new java.text.SimpleDateFormat("yyyyMMddHHmmss").parse(wantTime);
}
catch(ParseException ex) // or catch(Exception ex)
{
ex.printStackTrace();
}
위 소스처럼 사용하면 됩니다.
※ 주의사항
parse() 함수는 try 구문안에 꼭 넣어서 써야 합니다.
그렇지 않으면
이클립스에서는
Unhandled exception type ParseException
컴파일시에는
unreported exception java.text.ParseException; must be caught or declared to be thrown
와 같은 에러가 발생합니다.