Please Enable JavaScript!
Gon[ Enable JavaScript ]

Java 에서 날짜 더하기

자바(JAVA)
반응형

Java 에서 날짜 더하기

 

개발환경 : window 7 64bit, Eclipse Kepler, JDK 1.7, Junit 1.7

 

날짜를 더해서 값을 얻기 위해서는 SimpleDateFormat, Calendar 클래스가 필요하다.

이 두가지 클래스를 사용해서 다양한 경우에 미래의 날짜를 계산해서

얻을 수 있다.

 

1. 현재 날짜에서 값을 더하기

 

Calendar setTime() 함수를 이용해서 계산할수 있는 날짜를 셋팅한다.

그런후 add() 함수를 이용해 원하는 값만큼 더하거나 빼면 되는데

첫번째 파라미터에 더하고자 하는 옵션을 정해 넘겨주면 된다. 예를 들어

몇 달을 더한다던지, 아니면 시간을 더하고자 할 때 선택되는 옵션값이다.

 

그리고 원하는 포맷에 맞게 날짜를 뽑기 위해 SimpleDateFormat 사용하였다.

Format() 함수에 Calendar getTime() 으로 얻은 Date 객체를 넘겨주면 된다

 

@Test
public final void testGetDate() {
	
	Calendar cal = Calendar.getInstance();
	cal.setTime(new Date());
	cal.add(Calendar.DATE, 2);
	cal.add(Calendar.MONTH, 2);
	
	// 특정 형태의 날짜로 값을 뽑기 
	DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
	String strDate = df.format(cal.getTime());
	System.err.println(strDate);
}

 

2. 특정날짜에서 값을 더하기

 

첫번째 현재날짜에서 값을 더해 구하는 예제와의 차이는 특정날짜를 SimpleDateFormat

이용해 Date 클래스를 구한후에 Calendar 를 사용한다.

 

@Test
public final void testGetDate2(){
	
	DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
	try {
		Date date = df.parse("2013-02-35");
		
		// 날짜 더하기 
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		cal.add(Calendar.DATE, 2);
		cal.add(Calendar.MONTH, 2);
		
		System.err.println(df.format(cal.getTime()));
		
	} catch (ParseException e) {
		e.printStackTrace();
	}
}

 

3. oracle 사용시 쿼리에서 날짜 더하기

 

Java 와는 상관은 없지만 프로그램하다보면 DB 에서 더한후에 반환할건지 아니면

어플리케이션에서 더할 건지 고민하게 된다. 그럴때 참고 하기 위해 내용을 추가하였다.

두가지가 있는데 TO_DATE 로 변환후에 + 를 이용해 더하는 경우와 ADD_MONTHS

함수를 이용해 파라미터의 값을 넘겨 더하는 경우다.  당연히 ADD_MONTHS 외에

더하고자 하는 시간, 날짜 등의 함수도 존재한다.

 

SELECT add_months(to_date('2009-02-28','YYYY-MM-DD'), 1) FROM dual;

 

SELECT to_date('2009-02-28','YYYY-MM-DD') + 1 FROM dual;

 

SELECT to_date('2006-02-20','yyyy-mm-dd') + interval '4' day from dual;

 

SELECT add_years(sysdate,1) from dual;

 

반응형
Posted by 녹두장군1
,