남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
날짜와 시간
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 | 오전 / 오후 |
댓글