반응형
Calendar 클래스는 자바 개발자라면 자주 쓰는 항목 중 하나입니다.
Calendar는 java의 util에 포함된 기능으로 자바 기반 플랫폼에서는 기본 제공이라고 보시면 됩니다.
아래의 소스는 오늘자 기준으로 작년의 이번 주 월요일 날짜를 추출하는 소스입니다.
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
How to use Calendar Class
🇺🇸 English
2024.02.11 - [개발 창고/Java] - [JAVA] How to use Calendar Class
반응형
'개발 창고 > Java' 카테고리의 다른 글
[JAVA] 이메일 유효성 검사 (0) | 2023.03.16 |
---|---|
[POI] 엑셀 폰트 변경 (0) | 2023.02.10 |
[Nexacro] DataSet to Class (0) | 2023.01.27 |
[Java] Executable Jar 파일 실행 시 메모리 설정 (0) | 2022.03.11 |
[JAVA] SimpleDateFormat Class 사용하기 (0) | 2020.07.22 |