자바개발을 하면서 난 날짜연산이 필요할때.
예를 들면 어제날짜가 필요한다던가 입력받은 날짜에 얼마만큼의 기간을 더하고 빼고 할때 말이다.
java.util.Date객체의 메소드들은 대부분 Deprecated되어서(API문서) setDate같은 메소드를 쓰기도 찜찜하다.
그럴땐 Calendar 객체가 아주 유용하다.
생성자도 참 다양하다. 오늘 날짜를 예로들면,
등으로 쉽게 생성이 가능하다.
자 이제 날짜연산을 어떻게 할까.
이것도 매우 쉽다. add메소드를 이용한다.
같은 방법으로 get을 사용하면 해당 값을 가져올 수 있다.
GregorianCalendar는 이외에도 유용한 메소드가 많다.
그리고 java.util.Date객체가 필요하다면,
등의 방법으로 가능하다.
더 많은 정보는 API문서를 참고.
예를 들면 어제날짜가 필요한다던가 입력받은 날짜에 얼마만큼의 기간을 더하고 빼고 할때 말이다.
java.util.Date객체의 메소드들은 대부분 Deprecated되어서(API문서) setDate같은 메소드를 쓰기도 찜찜하다.
그럴땐 Calendar 객체가 아주 유용하다.
생성자도 참 다양하다. 오늘 날짜를 예로들면,
GregorianCalendar cal = new GregorianCalendar(); //현재시간
GregorianCalendar cal = new GregorianCalendar(2008, 1-1, 25); //년, 월-1, 일
GregorianCalendar cal = new GregorianCalendar(2008, 1-1, 25, 0, 0); //년, 월-1, 일, 시, 분
GregorianCalendar cal = new GregorianCalendar(2008, 1-1, 25, 0, 0, 0); //년, 월-1, 일, 시, 분, 초
GregorianCalendar cal = new GregorianCalendar(2008, 1-1, 25); //년, 월-1, 일
GregorianCalendar cal = new GregorianCalendar(2008, 1-1, 25, 0, 0); //년, 월-1, 일, 시, 분
GregorianCalendar cal = new GregorianCalendar(2008, 1-1, 25, 0, 0, 0); //년, 월-1, 일, 시, 분, 초
등으로 쉽게 생성이 가능하다.
자 이제 날짜연산을 어떻게 할까.
이것도 매우 쉽다. add메소드를 이용한다.
cal.add(Calendar.DATE, -1); //하루 전
cal.add(Calendar.MONTH, 4); //4개월 뒤
cal.add(Calendar.WEEK_OF_YEAR, -4); //4주전
cal.add(Calendar.MONTH, 4); //4개월 뒤
cal.add(Calendar.WEEK_OF_YEAR, -4); //4주전
같은 방법으로 get을 사용하면 해당 값을 가져올 수 있다.
GregorianCalendar는 이외에도 유용한 메소드가 많다.
cal.getMaximum(Calendar.DAY_OF_MONTH); //현재 월의 마지막 날짜
그리고 java.util.Date객체가 필요하다면,
Date date = cal.getTime();
Date date = new Date(cal.getTimeInMillis());
Date date = new Date(cal.getTimeInMillis());
등의 방법으로 가능하다.
더 많은 정보는 API문서를 참고.
'개발 꿈나무의 하루' 카테고리의 다른 글
| 디자인이 먼저냐 개발이 먼저냐 (1) | 2008/02/14 |
|---|---|
| 자바에서 날짜 가지고 놀수 있는 객체 - GregorianCalendar (4) | 2008/01/25 |
| C# 에서 java의 hashset용도로 쓸만한 클래스가 없을까. (0) | 2007/12/12 |
| 프로토 타입을 효과적으료 활용하기. (0) | 2007/11/13 |






댓글을 달아 주세요
깔끔한 정리^^;
ㅎㅎ
자주 썼던 거라서
Calendar라는 Abstract Class에서 받아다 써야지 어따가 이걸 들이대! -_-+
난 그냥 이게 편해서 ㅋ
isLeafYear인가 그 함수도 바로 쓸수있고