Programming/JAVA

[Java 자바] Calendar로 날짜와 시간 다루기 (현재 날짜 구하기/날짜 설정하기)

꼬ㄴi 2023. 8. 12. 21:15

[ java.util.Calendar ] 

- java.util 패키지에 속한 클래스

- Date의 단점을 보완

- 날짜와 시간 값을 조작(?)할 때 편리하게 사용하는 중


 현재 날짜와 시간 출력하기 

import java.util.Calendar;



Calendar cal = Calendar.getInstance();		// getInstance 메소드를 호출해 객체 생성

cal.getTimes();			// Sat Aug 12 20:32:57 KST 2023 (현재 날짜와 시간)

System.out.println(cal.getTimes());

출력 👉 Sat Aug 12 20:32:57 KST 2023 

 

Calendar 는 추상 클래스이기 때문에

new 연산자를 사용해서 객체 생성이 불가능

*추상 클래스 : 미완성 클래스. 상속된 자식 클래스에서 메서드를 구현하는 클래스이다.


 Calender 의 속성 

- YEAR   : 년

- MONTH   : 월 ( 0~11 -> 1월~12월)

- DATE   : 일

- DAY_OF_WEEK   : 요일 ( 1~7 -> 일요일~토요일)

- DAY_OF_YEAR   : 그 해 중 몇 번째 날인지

- DAY_OF_MONTH   : 그 달의 몇 번째 날인지

- WEEK_OF_YEAR   : 그 해의 몇 번째 주인지WEEK_OF_MONTH : 그 달의 몇 번째 주인지

- HOUR   : 시

- MINUTE   : 분

- SECOND   : 초

- AM_PM    : 오전·오후 여부  (AM : 0, PM : 1) / AM : 오전 / PM : 오후


 날짜와 시간 설정하기 

 

1 ) 날짜 속성(년/월/일/시/분/초) 값 전체를 설정

// 년, 월, 일, 시, 분, 초  원하는 값을 지정
cal.set(2028, 7, 8, 8, 8, 8);

// new Date() 객체를 전달해서 지정
cal.set(new Date());

출력1 👉 Fri Sep 08 08:08:08 KST 2028   

출력2 👉 Sat Aug 12 20:32:57 KST 2023 

 

2)  일부 속성 값만 설정

      -  add(속성명, 증가값) 메서드를 이용 

cal.add(Calendar.YEAR, 1);		// 1년 증가
cal.add(Calendar.MONTH, 1);		// 1달 증가
cal.add(Calendar.DATE, 1);		// 하루 증가
cal.add(Calendar.HOUR, 1);		// 1시간 증가

출력 👉 Fri Sep 13 21:32:57 KST 2024 

현재 날짜와 시간에서 년/월/일/시를 각각 +1 한 날짜가 출력

 

      - set(속성명, 속성값) 메서드를 이용 

cal.set(Calendar.MONTH, 11);	// 월을 12월로 설정 
cal.set(Calendar.MONTH, Calendar.DECEMBER);	// 또는 월을 직접 DECEMBER로 설정

// 요일을 월요일로 설정
cal.set(Calendar.DAY_OF_WEEK, 2)	
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);	

//오전 시간으로 설정
cal.set(Calendar.AM_PM, 0);	
cal.set(Calendar.AM_PM, Calendar.AM);

출력 👉 Mon Dec 04 08:32:57 KST 2023 

현재 날짜에서 월/요일/오전오후 값만 변경된 날짜가 출력