기본 콘텐츠로 건너뛰기

181218 SimpleDateFormat

SimpleDateFormat


0. Date Class

 - 자바에는 2개의 Date 클래스가 존재
 - java.sql.Date: 오라클의 날짜 타입과 연동 가능
 - java.util.Date: 오라클의 날짜 타입과 연동 불가능

※ 참고

 - java.sql.Date의 valueOf(String string)는 입력받은 문자열 값을 가지고
   날짜 값으로 변경해줌
 - 이때, 날짜 형식은 yyyy-mm-dd
 - valueOf("20181218") 이렇게 입력하면 exception 발생

1. 개요

 - Date 타입의 객체에서 특정 형식의 문자열을 가져오기 위해 사용

2. parse()

 - 문자열 형식의 날짜를 가져와서
 - Date 객체를 생성할 수 있음

예)
public void sendDocMail(List<Map<StringString>> param) throws Exception {
    // TODO Auto-generated method stub
 
    this.logger.info("공문 이메일서비스: "+param);
    
    //클래스 변수 세팅
    String banSlipNoDate = null;
    int cYear;
    int cMonth;
    int cDay;
    String temp = "";
        
    Map<StringString> sendData = new HashMap<>();
        
    for(int i=0; i < param.size(); i++) {
            
        banSlipNoDate = param.get(i).get("banSlipNoDate");
            
        this.logger.info("banSlipNoDate변수에 담긴 정보:: "+ banSlipNoDate);
            
        //Calendar instance 생성(한국 날짜 SYSDATE세팅)
        Calendar c = new java.util.GregorianCalendar(java.util.Locale.KOREA);
        //Calendar instance 내의 년, 월, 일 값 가져옴
        cYear = c.get(Calendar.YEAR);
        cMonth = c.get(Calendar.MONTH);
        cDay = c.get(Calendar.DAY_OF_MONTH) - 2;    //SYSDATE의 2일 전으로 세팅
            
        //원하는 형식으로 설정: yyyyMMdd 형식
        SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
            
        //DATE 타입에 넣기
        //parse()를 이용하여 yyyyMMdd 형식으로 DATE 객체 생성
        Date dt = f.parse(banSlipNoDate);
            
        // 값 세팅
        c.setTime(dt);
        c.add(Calendar.DATE, -2);
            
        //작업한 DATE 타입의 데이터를 String 타입으로
        String str = f.format(c.getTime());
 
                    ......
cs