본문 바로가기
백엔드/SpringBoot

스프링부트 Jackson 라이브러리 날짜 타임존이 UTC로 변경되는 문제

by 1005ptr 2021. 2. 26.
반응형

해결방법은 아래 설정을 application.properties에 넣는 것

spring.jackson.deserialization.adjust_dates_to_context_time_zone=false

 

문제

DB에 날짜를 저장할 때 입력한 타임존 정보가 그대로 DB에 저장됐으면 좋겠는데

(어디서 접속해서 변경한것인지 참고하기 위함)

클라이언트에서 전달한 타임존 정보를 Jackson이 파싱하면서 UTC로 변환해 버린다.

 

찾아본 결과 위 설정을 넣으면 해결된다.

1. 검색어는 "jackson zoneddatetime always utc"

 - 검색 결과

 

Why does Jackson's default deserializer set the Zone to UTC rather than Z?

I think I must be misunderstanding how Zones work in java's ZonedDateTime class. When I use Jackson to serialize and then deserialize now(), the deserialized value has getZone() == "UTC" instead o...

stackoverflow.com

2. 설정 파일이 있는지 Spring properties 쪽에서 검색

control + F 로 spring.jackson.deserialization 입력

 

Common Application properties

Various properties can be specified inside your application.properties file, inside your application.yml file, or as command line switches. This appendix provides a list of common Spring Boot properties and references to the underlying classes that consume

docs.spring.io

3. 근데 더이상 나와있지 않아서 구글에 저부분만 붙여넣기하고 점(.)을 찍어보니 느낌있는 항목이 나온다.

 

반응형

댓글