자바에서 날짜를 다루는 방법
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 |