java.util.Date
- 날짜와 시간을 다룰 목적으로 만들어진 클래스(JDK 1.0)
- Date의 메서드는 거의 deprecate되었지만, 여전히 쓰이고 있다.
java.util.Calendar
- Date클래스를 개선한 새로운 클래스(JDK 1.1). 여전히 단점이 존재
java.time패키지
- Date와 Calendar의 단점을 개선한 새로운 클래스를 제공(JDK1.8)
Calendar 클래스
- 추상클래스 이므로 getInstance()를 통해 구현된 객체를 얻어야 한다.
Calendar calendar = Calendar.getInstance();
- get()으로 날짜와 시간 필드 가져오기 - int get(int field)
Calendar cal = Calendar.getInstance(); // 현재 날짜와 시간으로 셋팅
int thisYear = cal.get(Calendar.YEAR); // 올해가 몇년인지
int lastDayOfMonth = cal.getActualMaximum(Calendar.DATE) // 이달의 마지막날
Calendar 클래스에 정의된 필드
필드명 | 설 명 |
YEAR | 년 |
MONTH | 월(0부터시작) |
WEEK_OF_YEAR | 일 |
WEEK_OF_MONTH | 그 달의 몇 번째 주 |
DATE | 일 |
DAY_OF_MONTH | 그 달의 몇 번째일 |
DAY_OF_YEAR | 그 해의 몇 번째일 (1월 1일부터 몇번째일인지) |
DAY_OF_WEEK | 요일(1 : 일요일 , 1 ~ 7) |
DAY_OF_WEEK_IN_MONTH | 그 달의 몇 번째 요일 |
HOUR | 시간(0~11) |
HOUR_OF_DAY | 시간(0~23) |
MINUTE | 분 |
SECOND | 초 |
MILLISECOND | 천분의 일초 1/1000 |
ZONE_OFFSET | GMT기준 시차(천분의 일초 단위) |
AM_PM | 오전/오후 |
- 날짜 시간 정하기
void set(int field, int value)
void set(int year, int month, int date)
void set(int year, int month, int date, int hourOfDay, int minute)
void set(int year, int month, int date, int hourOfDay, int minute, int second)
** 월은 0 부터 시작 : 월이 배열로 되어 있기 때문 {"JAN", "FEB", ... }
날짜
Calendar date = Calendar.getInstance();
date.set(2017, 7, 15) // 2017년 8월 15일
date.set(Calendar.YEAR, 2017);
date.set(Calendar.MONTH, 7);
date.set(Calendar.DATE, 15);
시간 정하기
Calendar time = Calendar.getInstance();
// 10시 20분 15초
time.set(Calendar.HOUR_OF_DAY, 10);
time.set(Calendar.MINUTE, 20);
time.set(Calendar.SECOND, 15);
초기화
time.clear() // 2017년 1월 1일 00:00:00
time.clear(Caleendar.HOUR); // 필드 초기화
필드 값 증가 감소
- set() 특정값 필드 증가 다른 필드에 영향 O
예)월이나 일을 초과하면 다른필드도 변경된다.
time.set(2020, 7, 31); // 2020년 8월 31일
time.add(Calendar.DATE, 1); // 날짜(DATE)에서 1을 더한다.
time.add(Calendar.MONTH, -8); // 월(MONTH)에서 8을 뺀다
- roll() 특정값 필드 증가 다른 필드에 영향 X
예)월이나 일을 초과해도 다른필드는 변경이 없다.
time.set(2020, 7, 31); // 2020년 8월 31일
time.roll(Calendar.DATE, 1); // 날짜(DATE)에서 1을 더한다.
time.roll(Calendar.MONTH, -8); // 월(MONTH)에서 8을 뺀다
- Date의 메서드는 대부분 deprecated 되었지만 여전히 사용
1. Calendar를 Date로 변환
Calendar cal = Calendar.getInstance();
...
Date d = new Date(cal.getTimeInMillis());
2. Date를 Calendar로 변환
Date d = new Date();
...
Calendar cal = Calendar.getInstance();
cal.setTime(d);
'개발' 카테고리의 다른 글
Java - 컬렉션 프레임웍(collections framework) (0) | 2021.06.06 |
---|---|
Java - 형식화 클래스 (0) | 2021.06.06 |
Java - 래퍼클래스(wrapper) (0) | 2021.06.06 |
Java - StringBuilder 클래스 / Math 클래스 (0) | 2021.06.06 |
Java - StringBuffer 클래스 (0) | 2021.06.05 |