Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling
Jackson이 Java 8에서 추가된 java.time 패키지의 LocalDateTime과 같은 날짜 및 시간 타입을 기본적으로 지원하지 않기 때문에 발생
이 문제를 해결하려면 Jackson 모듈인 com.fasterxml.jackson.datatype:jackson-datatype-jsr310 추가 필요
이 모듈은 Java 8의 날짜 및 시간 API를 지원함
의존성 추가(Gradle)
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
의존성 추가(Maven)
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.14.4</version> <!-- 최신 버전으로 변경 가능 -->
</dependency>
spring.jackson 프로퍼티를 사용하여 다음과 같이 설정할 수 있음
spring.jackson.serialization.write-dates-as-timestamps=false
기본적으로 속성이 true로 설정되어 있는데, 이 경우 Jackson은 날짜를 타임스탬프로 표현하여 JSON으로 직렬화함
타임스탬프는 일반적으로 밀리초 단위의 숫자로 표현되며 "2023-01-01T12:00:00.000Z"와 같은 포맷
속성을 false로 설정하면 JSON으로 직렬화되는 날짜가 타임스탬프 대신 ISO-8601형식의 문자열로 표현 하게됨
ISO-8601형식 문자열
더보기
- 날짜: YYYY-MM-DD
- 예시: 2024-01-22
- 날짜와 시간: YYYY-MM-DDThh:mm:ss
- 예시: 2024-01-22T14:30:00
- 시간대 포함: YYYY-MM-DDThh:mm:ssTZD
- 예시: 2024-01-22T14:30:00+03:00 (세계 표준시로부터 3시간 뒤)
- 시간대 미포함 (UTC): YYYY-MM-DDThh:mm:ssZ
- 예시: 2024-01-22T14:30:00Z (세계 표준시)