개발 창고/Java

[JAVA] Calendar Class 사용하기

로이제로 2020. 7. 23. 10:16
반응형

Calendar 클래스는 자바 개발자라면 자주 쓰는 항목 중 하나입니다.

Calendar는 java의 util에 포함된 기능으로 자바 기반 플랫폼에서는 기본 제공이라고 보시면 됩니다.

 

Java Platform SE 7

 

아래의 소스는 오늘자 기준으로 작년의 이번 주 월요일 날짜를 추출하는 소스입니다.

SimpleDateFormat에 대한 건

아래의 링크에서 확인 가능합니다.

2020/07/22 - [개발 창고/웹 개발] - SimpleDateFormat

 

		SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd E");
		
		Calendar cal = Calendar.getInstance();                  // Calendar 선언
		// Calendar cal = Calendar.getInstance(Locale.KOREA);   // Tip. Locale를 넣어주지 않으면 Default값이 적용됨 (설치된 환경기준)
		// cal.setTime(new Date());                             // Tip. 특정일을 지정해주지 않으면 Default로 오늘날짜가 적용됨
		System. out.println(fmt.format(cal.getTime()));         // 2020-07-23 목
		
		int year = cal.get(Calendar.YEAR);                      // 오늘 기준 년도 반환
		int week = cal.get(Calendar.WEEK_OF_YEAR);              // 오늘 기준 주차 반환
		cal.set(Calendar. YEAR, year-1);                        // 오늘 기준 -1년 적용
		cal.set(Calendar. WEEK_OF_YEAR, week);                  // 오늘 기준 주차 적용
		cal.set(Calendar. DAY_OF_WEEK, Calendar.MONDAY);        // 오늘 기준 요일 적용
		System. out.println(fmt.format(cal.getTime()));         // 2019-07-23 월

 

Calendar의 static변수로는 여러 가지 있지만, 주로 사용하는 변수들은 아래와 같습니다.

변수 내용
YEAR 해당 연도
MONTH 해당 월 (0~11. 1월을 0으로 ~12월을 11로 반환. 실제 표기를 위해선 +1을 해주어야 함)
DATE 해당 일자
HOUR 현재 시간 (오전/오후 기준. 0~11)
HOUR_OF_DAY 현재 시간 (24시간 기준. 0~23)
MINUTE 현재 분
SECOND 현재 초
MILLISECOND 현재 밀리세컨즈 (전체 밀리세컨즈는 cal.getTimeInMillis()를 이용)
DAY_OF_YEAR 올해 1월 1일 기준 일자
WEEK_OF_MONTH 해당 월 기준 주차 (1~5)
WEEK_OF_YEAR 해당 연도 기준 주차 (1~53)

테스트 소스는 위의 소스에 아래의 소스를 붙여서 실행해보면 확인 가능합니다.

		SimpleDateFormat fmt02 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss D E W w");
		System. out.println(fmt02.format(cal.getTime()));
		System.out.println("YEAR\t" + cal.get(Calendar.YEAR));
		System.out.println("MONTH\t" + cal.get(Calendar.MONTH));
		System.out.println("DATE\t" + cal.get(Calendar.DATE));
		System.out.println("HOUR\t" + cal.get(Calendar.HOUR));
		System.out.println("HOUR_OF_DAY\t" + cal.get(Calendar.HOUR_OF_DAY));
		System.out.println("MINUTE\t" + cal.get(Calendar.MINUTE));
		System.out.println("SECOND\t" + cal.get(Calendar.SECOND));
		System.out.println("MILLISECOND\t" + cal.get(Calendar.MILLISECOND));
		System.out.println("DAY_OF_YEAR\t" + cal.get(Calendar.DAY_OF_YEAR));
		System.out.println("WEEK_OF_MONTH\t" + cal.get(Calendar.WEEK_OF_MONTH));
		System.out.println("WEEK_OF_YEAR\t" + cal.get(Calendar.WEEK_OF_YEAR));

 

실행결과

기존 소스에서 -1년을 해둔 상태이기 때문에 2019로 반환되었고 결과의 첫 번째 줄 아래와 같습니다.

2019: 연도

07: 월

22: 일

15: 시간 (24시간 기준)

14: 분

10: 초

203: 1월 1일 기준 203일째 되는 날

월: 월요일

4: 이벌 달 기준 4주 차

30: 올해 기준 30주 차


더 자세한 사항은 아래의 링크에서 확인 가능합니다.

https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

 

Calendar (Java Platform SE 7 )

Adds or subtracts (up/down) a single unit of time on the given time field without changing larger fields. For example, to roll the current date up by one day, you can achieve it by calling: roll(Calendar.DATE, true). When rolling on the year or Calendar.YE

docs.oracle.com


How to use Calendar Class

🇺🇸 English

 

2024.02.11 - [개발 창고/Java] - [JAVA] How to use Calendar Class

 

[JAVA] How to use Calendar Class

The Calendar class is one of the most popular items for Java developers. Calendar is a feature included in java's util and is a built-in offering on Java-based platforms. EXAMPLE The source below is the one that extracts the date this Saturday of last year

royzero.tistory.com

 

반응형