String 타입의 날짜를 Date 타입으로 변환하기

우리는 java.util.Date 혹은 java.sql.Date 타입의 객체에서 특정한 형식의 문자열로 날짜를 가져오기 위해서
java.text.SimpleDateFormat 클래스를 이용할 수 있다는 것을 알고 있다.
[code]
package javacodesnipet;
/**
 * @author 신윤섭
 */
public class SimpleDateFormatTest {
 
 public static void main(String[] args){
 
  // 현재 일시 정보를 갖는 Date 객체를 생성한다.
  java.util.Date currentDate = new java.util.Date();  
  //Date객체로부터 특정한 형식의 문자열로 일시를 만들어내기 위한 포매터를 생성한다.
  java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(“yyyy년MM월dd일 HH시mm분ss초”);
  //포매터를 이용하여 Date객체로부터 문자열을 만들어낸다.
  String dateString = format.format(currentDate);
  //변환된 문자열을 확인한다.  결과 : 2007년07월22일 02시21분42초
  System.out.println(dateString);  
 
 }
}
[/code]
위의 코드는 흔히 사용하는 코드일 것이다.

그런데 이 SimpleDateFormat 클래스의 parse() 메소드를 이용하면 역으로 문자열 형식의 날짜로부터
Date객체를 생성 해낼 수도 있다.
[code]
package javacodesnipet;
/**
 * @author 신윤섭
 */
public class SimpleDateFormatTest {
 
 public static void main(String[] args){
  try {
   // “2007-07-22” 이란 문자열로 2007년 7월 22일의 정보를 갖는 Date객체를 만들어보자
   String textDate = “2007-07-22”;

   // 입력할 날짜의 문자열이 yyyy-MM-dd 형식이므로 해당 형식으로 포매터를 생성한다.
   java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(“yyyy-MM-dd”);

   //SimpleDateFormat.parse()메소드를 통해 Date객체를 생성한다.
   //SimpleDateFormat.parse()메소드는 입력한 문자열 형식의 날짜가
   //포맷과 다를경우 java.text.ParseException을 발생한다.
   java.util.Date date = format.parse(textDate);

   //위에서 만든 date객체가 정말 7월22일인지 확인 해보자.
   java.text.SimpleDateFormat format1 = new java.text.SimpleDateFormat(“yyyy년MM월dd일 HH시mm분ss초”);
   String dateString = format1.format(date);
   //Date객체의 날자를 확인한다..  결과 : 2007년07월22일 00시00분00초
   System.out.println(dateString);
  } catch (java.text.ParseException ex) {
   ex.printStackTrace();
  }
 
 }
}
[/code]

10 Comments

Add Yours →

저렇게 하면 최종 결과물은 String 입니다만?nn뭐가 Date타입입니까?nnSimpleDateFormat을 이용해서 parse하면 Date타입이지만n다시 format하면 무조건 스트링타입이 됩니다.nn따라서 String -> Date 변환이 아니라nString -> String(패턴지정) 이 됩니다. nnDate타입에는 따로 패턴을 줄수 없는것으로 알고 있습니다.

java.util.Date date = format.parse(textDate); <-- 여기까지가 포매터를 이용해서 String -> Date 변환이 이뤄진거고 그 아래 내용은 정말 제대로 변환되었는지 확인을 위한 테스트 코드로 보여집니다. rnrn다른 사람의 블로그에서 도움을 얻어갔으면 고맙다는 글을 못달지언정 본인의 난독증을 굳이 광고할 필요가 있을까 싶군요. 닉네임부터 똑바로 다는 예절부터 배우십시오.

좋은 글 잘보고갑니다. 이것때문에 헤맸었는데 덕분에 해결되었어요 감사합니다♡

답글 남기기

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.