hoony's web study

728x90
반응형

API를 개발할때 Jackson 을 사용하고 있는데 시간이 이상하게 리턴이 되는 문제점을 발견했어요. 

Jackson은 기본적으로 UTC를 사용하기 때문에 원하는 시간대를 사용하기 위해서는 아래 소스와 같이 설정이 필요하네요. 
아시겠지만 일단 소스를 보시면 바로 아실꺼에요. 

@Configuration
class JacksonDateFormatConfiguration {
    @Bean
    fun jackson2ObjectMapperBuilderCustomizer(): Jackson2ObjectMapperBuilderCustomizer {
        return Jackson2ObjectMapperBuilderCustomizer { jacksonObjectMapperBuilder: Jackson2ObjectMapperBuilder ->
            jacksonObjectMapperBuilder.timeZone(TimeZone.getTimeZone("Asia/Seoul"))
            jacksonObjectMapperBuilder.simpleDateFormat(datetimeFormat)
            jacksonObjectMapperBuilder.serializers(
                LocalDateSerializer(
                    DateTimeFormatter.ofPattern(
                        dateFormat
                    )
                )
            )
            jacksonObjectMapperBuilder.serializers(
                LocalDateTimeSerializer(
                    DateTimeFormatter.ofPattern(
                        datetimeFormat
                    )
                )
            )
        }
    }

    companion object {
        private const val dateFormat = "yyyy-MM-dd"
        private const val datetimeFormat = "yyyy-MM-dd HH:mm:ss"
    }
}

 

위와 같이 jacksonObjectMapper에 시간대를 설정하시면 저처럼 오류가 나오는 버그는 쉽게 해결이 가능합니다. 


728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading