포스트

[JAVA] Calendar

날짜와 시간

java.util.Date

  • 날짜와 시간을 다룰 목적으로 만들어진 클래스
  • Date의 메소드는 거의 사용하지 않지만, 여전히 사용 중이다.
  • java.util.Calendar
    • Date 클래스를 개선한 클래스
  • java.util.Time
    • Date와 Calendar 단점을 개선한 새로운 클래스들을 제공

Calendar 클래스

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

int get(int field)

  • get()으로 날짜와 시간을 가져올 수 있다.
1
2
Calendar cal = Calendar.getInstance(); // 현재 날짜 시간으로 설정
int thisYear = cal.get(Calendar.YEAR); // 올해 몇년인지 가져옴
필드명(날짜)설명
YEAR
MONTH
WEEK_OF_YEAR해당 연도의 몇 번째 주
WEEK_OF_MONTH해당 달의 몇 번째 주
DATE
DAY_OF_YEAR해당 연도의 몇 번째 일
DAY_OF_MONTH해당 달의 몇 번째 일
DAY_OF_WEEK요일
DAY_OF_WEEK_IN_MONTH해당 달의 몇번째 요일
필드명(시간)설명
HOUR시간(0~11)
HOUR_OF_DAY시간(0~23)
MINUTE
SECOND
MILLISECOND1/1000초
ZONE_OFFSETGMT 기준 시차 / (1/1000)초 단위
AM_PM오전/오후

set()

  • 날짜와 시간을 지정할 수 있다.
  • 월(MONTH)은 0부터 시작하기에 원하는 지정 월에서 1을 빼줘야 한다.

  • 날짜 지정
1
2
Calendar date1 = Calendar.getInstance();
date1.set(2024, 0, 1); // 2024년 1월 1일
  • 시간 지정
1
2
3
4
Calendar time1 = Calendar.getInstance();
time1.set(Calendar.HOUR_OF_DAY, 10); // 10시
time1.set(Calendar.MINUTE, 20); // 20분
time1.set(Calendar.SECOND, 30); // 30초

add()

  • 날짜 추가할 때 사용한다.
1
2
3
4
5
6
7
8
9
10
Calendar date1 = Calendar.getInstance();
date1.set(2024, 0, 1); // 2024년 1월 1일
data1.add(Calender.DATE, 1); // 하루 더함
> 2024 1 2

date1.set(2024, 0, 1); // 2024년 1월 1일
data1.add(Calender.MONTH, 1); // 한달 더함
> 2024 2 1

date1.set(2024, 0, 1); // 2024년 1월 1일data1.add(Calender.DATE, 1); // 하루 더함

Date와 Calendar 간의 변환

  • Date 메소드는 많이 사용을 하지 않지만 Date와 Calendar 변환은 알아두는 게 좋다.

Calendar to Date

1
2
3
Calendar cal = Calendar.getInstance();

Date d = new Date(cal.getTimeInMillis());

Date to Calendar

1
2
3
Date d = new Date();
Calendar d = Calendar.getInstance();
cal.setTime(d);
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.