코딩 기록들

[Java Programming] 13.2 Calendar 본문

Java

[Java Programming] 13.2 Calendar

코딩펭귄 2024. 2. 2. 17:00

Calendar 

자바는 날짜와 시간을 처리할 수 있는 3가지 클래스를 제공
1. Date
2. Calendar
3. LocalDateTime (Java 1.8에서 추가)
 
Calendar
- 자바 1.8 미만에서 사용
- 날짜를 제어하는 클래스
- 레퍼런스 타입이지만, 사용할때 Calendar.getInstance() 라고 작성한다
--> 유일한 인스턴스이므로 new하지않고 Calendar(".")getInstance() 로 사용함
- 원래의 인스턴스에서 복제된 인스턴스를 준다
- Calendar이 돌려주는 '월' 은 0부터 시작함 -> Month를 가져올때는 +1 해서 가져와야함 ex) get(Calendar.MONTH) + 1

- Calendar이 돌려주는 요일은 숫자로 돌려준다 : 1(일요일) ~ 7(토요일)

- SimpleDateFormat : 포맷이 정해져 있음 ( yyyy-MM-dd HH:mm:ss ) -> 대문자HH : 24시로 가져오고, hh: 12시로 가져옴

- set(년, 월, 일) -> ex) set(2022, 01, 01) = 2022년 2월 1일

Calendar 이용해 날짜 변경하기
public class CalendarPPT {

	public static void main(String[] args) {
	
		// Calendar 인스턴스 가져오기
		Calendar nowCal = Calendar.getInstance();
		
		// 현재 연,월,일 시,분,초 구하기
		System.out.println(nowCal.get(Calendar.YEAR));
		System.out.println(nowCal.get(Calendar.MONTH)+1);
		System.out.println(nowCal.get(Calendar.DAY_OF_MONTH));
		System.out.println(nowCal.get(Calendar.HOUR));
		System.out.println(nowCal.get(Calendar.MINUTE));
		System.out.println(nowCal.get(Calendar.SECOND));

		//1일요일 ~ 7토요일
		System.out.println(nowCal.get(Calendar.DAY_OF_WEEK));
		
		
		//현재 연,월,일만 문자열로 가져오기 -> 현재 날짜 / 시간
		Date now = Calendar.getInstance().getTime();
		System.out.println(now);
		
		//날짜포맷 지정
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		
		//날짜를 포맷에 맞춰 변경
		String formatDate = format.format(now);
		
		//출력
		System.out.println(formatDate);
		
		
		//Calendar 이용해 날짜 변경
		nowCal.set(2022,01,01); //날짜지정
		nowCal.add(Calendar.DAY_OF_MONTH, 10); //날짜에 10일 더하기
		nowCal.add(Calendar.DAY_OF_MONTH, -20); //날짜에서 20일 빼기

	}
날짜변경 2가지 방법
// 날짜 변경 방법 1 
Calendar past = Calendar.getInstance();
past.set(Calendar.YEAR, 1970);
past.set(Calendar.MONTH, 0);
past.set(Calendar.DAY_OF_MONTH, 1);
past.set(Calendar.HOUR, 0);
past.set(Calendar.MINUTE, 0);
past.set(Calendar.SECOND, 0);

//날짜 변경 방법2
past.set(2022,  3-1,  1,  1,  50,  17);

 

지역변수에 한해서 type추론(var) 사용할 수 있다

- 위의 코드에서 ex) Calendar nowDateTime -> var nowDateTime 으로 사용 가능
- 파라미터, 멤버변수에는 var 사용 못함(자바10부터 가능)