날짜와 시간 처리 방법
날짜와 시간을 저장하는 구조체는 컴퓨터에서 데이터를 처리할 때 필수적이다. 날짜와 시간은 컴퓨터에 있는 파일 보호나 관리에 필요할 뿐 아니라 현재 시간을 알 수 있게한다. 따라서 날짜와 시간은 매우 많은 부분에서 사용되어 진다.
자바에서는 날짜를 다루는 클래스로 java.util.Date 클래스와 Date 클래스를 상속받아 구현한 java.sql.Time, java.sql.Timestamp 클래스 이 세개가 자바에서의 날짜를 다루는 클래스이다.
데이터 베이스에서 날짜를 다루는 필드 속성에는 Date와 Timestamp 가 있다. Date 속성은 자동으로 필드를 채워주는 기능이 없다. 즉, 데이터베이스에 데이터를 삽입하거나 수정할 때 Date 필드는 사용자가 직접 데이터를 입력하거나 수정해야 한다. 하지만 Timestamp 속성은 자동으로 필드에 현재 시간을 채워주는 기능이 있다. 따라서 사용자가 Timestamp 필드를 생략한 채 데이터를 삽입하거나 수정하면 자동으로 현재 시간을 Timestamp 필드에 기록한다. Date 속성과 Timestamp 속성은 이런 차이점을 가지고 있다.
Date 클래스 생성 방법
SimpleDateFormat 클래스를 활용하여 날짜를 지정하여 생성할 수 있다. 아래 코드는 SimpleDateFormat 클래스를 사용하여 Date 객체에 날짜를 지정하는 방법이다.
String textDate = "2009-01-01";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse( textDate );
SimpleDateFormat 클래스를 사용하면 Date 객체를 텍스트 형태의 날짜로 표현할 수도 있다. 이 방법은 자바 클래스 설명에 있다.
또한, 직접 new 연산자를 사용하여 Date 객체를 생성할 수 있다. 아래 코드는 직접 new 연산자를 사용하여 Date 객체를 생성하는 코드이다.
이 때 주의할 점은 객체를 생성할 때 년도는 1900년도를 기준으로 생성한다. 위와 같이 new Date(2000, 10, 10) 로 생성했다면 Date 객체의 실제 년도는 3900 년 10월 10일이 된다. 또한, 자바에서는 new 연산자를 사용하여 Date 객체를 생성하는 것을 자제시키고 있다. 즉, 날짜 포멧을 갖춘 Date 객체를 사용하는 것을 추천한다.
java.util.Date 객체를 java.sql.Date 객체로 변경하는 방법
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
java.util.Date commitUtilDate = format.parse(textDate);
long timeLongValue = commitUtilDate.getTime();
java.sql.Date commitSqlDate = new Date(timeLongValue);
java.sql.Date 객체를 문자열로 년,월,일로 다시 나누는 방법
String year = stringDate.substring(0, 4);
String month = stringDate.substring(5, 7);
String day = stringDate.substring(8, 10);
Timestamp 객체의 날짜 표현 방법 변경하기
날짜 포멧 변경은 SimpleDateFormat 클래스를 사용하여 변경한다. SimpleDateFormat 클래스는 텍스트에서 Date 객체로 Date 객체에서 텍스트로 변경할 수 있으며 날짜 패턴을 지정할 수 있다.
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.format( stamp );
또한, Timestamp 값을 JSTL 를 사용하여 표현 방법을 변경할 수도 있다. JSTL 태그를 사용한 포멧 변경 방법이다.
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<fmt:formatDate value="${vo.date}" type="both" pattern="yyyy-MM-dd"/>
'자바(Java) > JAVA 2EE' 카테고리의 다른 글
페이지 소스보기에서 공백(JSP가 사용된 부분) 제거하기 (0) | 2010.01.15 |
---|---|
캐시(cache) 사용금지를 위한 응답 헤더 설정 (0) | 2010.01.11 |
서블릿에서 객체를 생성해 파라미터로 페이지로 전달하기 (0) | 2009.12.27 |
MySQL 5.1 데이터베이스와 JDK1.6, 톰캣 6 버전 연동방법 (0) | 2009.12.26 |
프로그램으로 트랜잭션 처리하는 방법 (0) | 2009.12.26 |