'date'에 해당되는 글 2건

  1. [Java] Joda-Time; JDK 기본 API를 대체하는 날짜 시간 라이브러리
  2. [Spring MVC 3] @ResponseBody로 JSON 객체 반환시 Timestramp 포맷 깨짐 현상 해결하기

[Java] Joda-Time; JDK 기본 API를 대체하는 날짜 시간 라이브러리

* Java에서 날짜와 시간을 다루기 위해서는 JDK에서 기본 제공되는 java.util.Datejava.util.Calendar 클래스를 이용해야 하는데 코드 구현이 상당히 불편하고 번거롭다. Joda-Time 라이브러리가 제공하는 org.joda.time.DateTime 클래스를 이용하면 상당히 직관적이고 적은 코드로 날짜와 시간을 다룰 수 있다.

예를 들어 현재 날짜의 주차 숫자를 알고 싶다면 다음과 같이 한줄의 코드로 끝낼 수 있다.
int week = DateTime.now().weekOfWeekyear().get();

Joda-Time 공식 사이트
http://joda-time.sourceforge.net/

Joda-Time 소스 코드 (GrepCode)
http://grepcode.com/project/repo1.maven.org/maven2/joda-time/joda-time/


[Java] [JavaScript] Timestamp 다루기

http://jsonobject.tistory.com/34


저작자 표시 비영리 동일 조건 변경 허락
신고

[Spring MVC 3] @ResponseBody로 JSON 객체 반환시 Timestramp 포맷 깨짐 현상 해결하기

본 글은 크리에이티브 커먼즈 라이센스(CC BY-NC-SA)를 준수합니다.

 



Spring MVC 3에서 리턴 타입 앞에 @ResponseBody 어노테이션을 명시할 경우 사용되는 Jackson 라이브러리는 Oracle의 DATE 타입의 데이터를 수용하는 java.sql.Timestamp 타입을 정상적으로 변환하지 못하여 View에서 값이 비정상적으로 출력되는 현상이 발생한다.


DATE 타입의 정상적인 출력을 위해 디비의 스키마를 다른 타입으로 변경하는 것은 효율적이지 못한 접근으로 아래와 같이 커스터마이징된 ObjectMapper 상속 클래스를 구현하고 DispatcherServlet에 등록하면 View에서 값이 정상적으로 출력된다.


* CustomObjectMapper.java

package ...;

import java.text.SimpleDateFormat;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig.Feature;

public class CustomObjectMapper extends ObjectMapper {
    public CustomObjectMapper() {
        super();
        configure(Feature.WRITE_DATES_AS_TIMESTAMPS, false);
        setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
    }
}


* dispatcherServlet.xml

    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="false">
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                <property name="objectMapper">
                    <bean class="....CustomObjectMapper" />
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>


저작자 표시 비영리 동일 조건 변경 허락
신고