자바에서 날짜를 다루는 방법

 

Calendar클래스


선언방법

// Calendar cal = new Calendar();  추상클래스이기때문에 인스턴스를 생성 불가
    Calendar cal = Calendar.getInstance(); //Calendar 클래스를 구현한 클래스의 인스턴스를 반환

사용방법 ( get() ) 

Calendar cal = Calendar.getInstance(); //Calendar 클래스를 구현한 클래스의 인스턴스를 반환
int thisYear = cal.get(Calendar.YEAR); //현재 몇년인지 출력
int lastDayOfMonth = cal.getActualMaximum(Calendar.DATE);//현재달의 마지막날
int thisDay = cal.get(Calendar.DATE);
System.out.println(thisDay);

사용방법2 ( set() ) 

Calendar cal = Calendar.getInstance(); //Calendar 클래스를 구현한 클래스의 인스턴스를 반환
cal.set(2017,7,15);
System.out.println(cal.get(Calendar.MONTH));
cal.set(Calendar.MINUTE,20);

      * 월이 0부터 시작한다고 나와있지만 자바 버전에 따라 바뀐듯. 예전버전이면 2017.8.15 이지만 2017.7.15로 출력됨(인텔리제이 기능으로 세부적으로 지정가능)

 

자바 날짜 차이 구하기 

Calendar cal = Calendar.getInstance(); //Calendar 클래스를 구현한 클래스의 인스턴스를 반환
cal.set(2022, Calendar.AUGUST,6);

Calendar cal2 = Calendar.getInstance(); //현재 날짜

long dif = (cal.getTimeInMillis() - cal2.getTimeInMillis())/1000; //getTime은 1/1000초로 구해져서 1000으로 나눔
System.out.println("날짜 차이는 " + dif/(24*60*60));

 

모든 날짜 지우기 ( clear()) 

Calendar cal3 = Calendar.getInstance();
cal3.clear();
System.out.println(new Date(cal3.getTimeInMillis())); //Epock TIme

 

날짜 값을 증가 혹은 감소시키기 ( add() , roll())

Calendar cal4 = Calendar.getInstance();
cal4.clear();
cal4.set(2022, Calendar.JUNE,30); //6월 //숫자는 5
cal4.add(Calendar.MONTH,1); //7월로 변경 //2022,7,30이됨 //숫자는 6
cal4.add(Calendar.DATE,1); // 2022.7.31이됨
System.out.println(cal4.get(Calendar.MONTH));
System.out.println(cal4.get(Calendar.DATE));


cal4.set(2022, Calendar.JUNE,30);
cal4.roll(Calendar.MONTH,1); //7월로 변경 //2022,7,30이됨 //숫자는 6
cal4.roll(Calendar.DATE,2); //날짜 2증가 add의경우는 월이바뀌지만 roll은안바뀜
System.out.println(cal4.get(Calendar.MONTH));
System.out.println(cal4.get(Calendar.DATE));

add() 는 정상적으로 흔히 생각하는 날짜의 계산방법이고 roll()은 일을 증가시켜도 월이나 년도에 영향을 주지않음.

 

 

 

 

'IT 관련 > JAVA' 카테고리의 다른 글

자바 컬렉션 프레임웍  (0) 2022.08.09
자바 형식화 , 포멧팅(formatting)  (0) 2022.08.03
자바 java.lang 패키지(2)  (0) 2022.07.26
자바(java) java.lang패키지(1)  (0) 2022.07.26
자바 예외처리  (0) 2022.07.07

+ Recent posts