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;
'자바(JAVA)' 카테고리의 다른 글
자바스크립트(javascript) 배열로 구성하여 input 객체에 넣고 POST 넘겼을때 (4) | 2014.09.18 |
---|---|
웹페이지에서 구글맵 구현 (0) | 2014.02.25 |
Java 에서 Exception 의 내용을 추출하고 싶을 때 (1) | 2014.02.12 |
[Java] 자바 데이터베이스 연동, 오라클(Oracle), MySQL DB 연결 테스트 (0) | 2014.02.09 |
자바 Junit 기능중 타임 아웃 테스트 하기 (0) | 2013.10.27 |
Java 단위테스트 Junit 에서 Suite 로 클래스 집합 테스트 하기 (0) | 2013.10.26 |
Java 파일입출력의 다양한 방법들을 배워본다 (1) | 2012.09.28 |
자바 난수 발생 랜덤(Random) 클래스로 데이터를 추출하는 다양한 방법 (0) | 2012.09.26 |