아주 오래된 자바 버전(JDK1.0)에서는 날짜와 관련된 클래스는 Date 클래스가 유일 했으며, 그마저 매우 간단한 기능만 처리 가능하도록 제공되었다. 현재의 자바 버전(JDK1.8)에서는 Date 클래스가 사용을 권장하지 않는 deprecated 처리되었으며, JDK 1.1부터 새롭게 제공되는 Calendar 클래스에서 날짜와 관련된 보다 강력한 기능을 수행할 수 있다.

 

Calendar 클래스는 날짜와 관련된 기능을 제공하는 추상 클래스다. 추상 클래스로 선언된 이유는 국가마다 사용하는 날짜 체계가 다르기 때문이다. Calendar 클래스는 날짜와 시간을 처리하기 위한 다양한 필드와 메서드를 제공한다. Calendar 클래스의 모든 필드는 정적 변수(static)이므로, 객체를 생성하지 않아도 접근이 가능하다.

 

 

 

# Calendar 클래스의 주요 상수

 

상수

사용방법

설명 

 static int YEAR

 Calendar.YEAR 

 현재 년도를 가져온다.

 static int MONTH 

 Calendar.MONTH 

 현재 월을 가져오며, 0월부터 시작이다. 

 static int DATE 

 Calendar.DATE 

 현재 월의 날짜를 가져온다. 

 static int WEEK_OF_YEAR 

 Calendar.WEEK_OF_YEAR

 현재 년도의 몇째 주

 static int WEEK_OF_MONTH 

 Calendar.WEEK_OF_MONTH 

 현재 월의 몇째 주 

 static int DAY_OF_YEAR 

 Calendar.DAY_OF_YEAR 

 현재 년도의 날짜 

 static int DAY_OF_MONTH

 Calendar.DAY_OF_MONTH 

 현재 월의 날짜 (DATE와 동일) 

 static int DAY_OF_WEEK 

 Calendar.DAY_OF_WEEK 

 현재 요일 (일요일은 1, 토요일은 7)

 static int HOUR 

 Calendar.HOUR 

 현재 시간 (12시간제)

 static int HOUR_OF_DAY

 Calendar.HOUR_OF_DAY 

 현재 시간 (24시간제) 

 static int MINUTE 

 Calendar.MINUTE 

 현재 분

 static int SECOND 

 Calendar.SECOND 

 현재 초 

 

 

# Calendar 사용 예시

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Calendar;
 
public class study {        
    public static void main(String args[]){
        Calendar now;
        now = Calendar.getInstance();
        
        now.add(now.MONTH, 1);
        
        int yy, mm, dd;
        yy = now.get(Calendar.YEAR);
        mm = now.get(Calendar.MONTH);
        dd = now.get(Calendar.DATE);
        
        System.out.println(yy + "년 " + mm + "월 " + dd + "일");
    }    
}

 

 

위의 예시에서는 Calendar 클래스를 활용해서 현재 날짜를 출력하는 예시를 작성해 보았다. 위에서 언급했듯이 정적 변수기 때문에 객체화 하지 않고 바로 사용할 수 있다. 특이점은 MONTH 필드의 경우 0부터 출력되기 때문에 현재 개월수를 출력하기 위해서는 + 1 값을 구해야 한다.

 

 

 

  1. # 제목 변경:
    자바 Calendar 클래스: 캘린더 및 달력 출력
    >> 자바 Calendar 클래스: 현재 날짜와 시간 구하기

    # 내용 보강

Private comment