[출처] GregorianCalendar|작성자 아호
예를 들면 어제날짜가 필요한다던가 입력받은 날짜에 얼마만큼의 기간을 더하고 빼고 할때 말이다.
java.util.Date객체의 메소드들은 대부분 Deprecated되어서(API문서) setDate같은 메소드를 쓰기도 찜찜하다.
그럴땐 Calendar 객체가 아주 유용하다.
생성자도 참 다양하다. 오늘 날짜를 예로들면,
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.MONTH, 4); //4개월 뒤
cal.add(Calendar.WEEK_OF_YEAR, -4); //4주전
같은 방법으로 get을 사용하면 해당 값을 가져올 수 있다.
GregorianCalendar는 이외에도 유용한 메소드가 많다.
그리고 java.util.Date객체가 필요하다면,
Date date = new Date(cal.getTimeInMillis());
등의 방법으로 가능하다.
더 많은 정보는 API문서를 참고.
출처 : http://widyou.net/299 위드의 블로그
=====================================================================================================================
=====================================================================================================================
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class t {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
DateFormat formatter = new SimpleDateFormat("yy/MM/dd");
Date date = formatter.parse("07/06/18");
GregorianCalendar today = new GregorianCalendar ( );
today.setTime(date);
int year = today.get ( today.YEAR );
int month = today.get ( today.MONTH ) + 1;
int yoil = today.getActualMinimum( ( today.DAY_OF_MONTH );
DateFormat formatter1 = new SimpleDateFormat("yy/MM/dd");
StringBuffer buf =new StringBuffer();
buf.append(year).append("/");
buf.append(month).append("/");
buf.append(yoil);
Date date2=formatter1.parse(buf.toString());
System.out.println(formatter1.format(date2));
System.out.println( formatter.format(today.getTime()));
}
}