본문 바로가기
프로그래밍/JAVA

자바의 정석 기초 (java.util.Date / java.util.Calendar / java.time패키지 / Calendar 클래스 )

by ✲ 2020. 8. 4.
반응형

남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다. 

 

날짜와 시간 

java.util.Date 

- 날짜와 시간을 다룰 목적으로 만들어진 클래스 (JDK1.0)

- Date의 메서드는 거의 deprecated되었지만, 여전히 쓰이고있다. 

 

java.util.Calendar 

- Date클래스를 개선한 새로운 클래스(JDK1.1). 여전히 단점이 존재 

 

java.time패키지 (자바의정석 기초편에서는 X ) 

- Date와 Calendar의 단점을 개선한 새로운 클래스를 제공(JDK1.8) 

 

Calendar클래스

- 추상클래스이므로 getInstance()를 통해 구현된 객체를 얻어야한다. 

Calendar cal = new Calendar();    // 에러! 추상클래스는 인스턴스를 생성할 수 없다. 

Calendar cal = Calendar.getInstance();   // getInstance()메서드는 Calendar클래스를 구현한 클래스의 인스턴스를 반환한다. 

class MyApplication  {
    public static void main(String args[]){
        Calendar cal = new GregorianCalendar() ; //경우에 따라 이 부분을 변경
            ...
    }
}

 

Calendar 클래스 예제 

- get()으로 날짜와 시간 필드 가져오기 int get(int field)

Calendar cal  = Calendar.getInstance();    // 현재 날짜와 시간으로 셋팅 

int this = cal.get(Calendar.YEAR);            // 올해가 몇년인지 알아낸다. 

int lastDayofMonth  =  cal.getActualMaximum(Calendar.DATE);    // 이달의 마지막날

 

Calendar에 정의된 필드 (날짜)

필드명 설명
YEAR
MONTH 월 (0부터 시작)
WEEK_OF_YEAR 1월1일 ~ 지금까지 몇 번째 주 
WEEK_OF_MONTH 그 달의 몇 번째 주 
DATE
DAY_OF_MONTH 그 달의 몇 번째 일 
DAY_OF_YEAR 그 해의 몇 번째 일 
DAY_OF_WEEK 요일
DAY_OF_WEEK_IN_MONTH 그 달의 몇 번째 요일 

 

Calendar에 정의된 필드 (시간)

필드명 설명
HOUR 시간 ( 0 ~ 11)
HOUR_OF_DAY 시간 ( 0 ~ 23) 
MINUTE
SECOND
MILLSECOND 천분의 일초
ZONE_OFFSET GMT 기준 시차 (천분의 일초 단위) 
AM_PM 오전 / 오후 
반응형

댓글