Java8의 LocalDateTime을 Json으로 전송 시 ISO-8601 형식으로 출력하기

Posted by , February 28, 2018
Java
Series ofJava

주의

이 문건은 과거 Hexo 블로그 (2018-02-28) 에서 이동된 문서입니다.

시간이 지남에 따라 최신 기술과 다를 수 있으니 주의 바랍니다.



Java8의 LocalDateTime을 Json으로 변환하였더니...

제가 개발하는 프로젝트들은 Java8을 이용하여 개발을 하고 있습니다.
그 중 Java8의 Date 클래스를 보완하기 위해 나온 것이 Java8의 LocalDateTime입니다.
그런데 이 LocalDateTime을 Spring-Boot에서 Json 형식으로 호출할 경우 아래와 같이 Json을 만들게 됩니다.


img 01


위 사진에서 joinDate라는 값을 보면 날짜 정보가 상세하게 등록되어 있는 것을 확인할 수 있습니다.
하지만 요즘은 ISO-8601(한국위키)의 양식에 맞춰서 사용합니다.


img 02


위 사진처럼 결과를 나오게 하는 방법을 알아보겠습니다.
예제 환경은 아래와 같습니다.

Spring Boot 1.5.8.RELEASE Gradle 환경

1. build.gradle에 의존성 추가

아래의 의존성을 작성합니다.

compile "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.4"

해당 라이브러리는 LocalDateTimeLocalDate 등의 날짜, 시간 관련 객체를 인식할 수 있도록 해주는 Jackson 라이브러리 입니다.

이것만 추가한 후 gradle을 동기화 해주면 끝입니다.