[Java] 7. 어노테이션을 이용한 JSON 객체 Date 형식 변환(@JsonFormat, @DateTimeFormat)
in Java on Java 개발 기록
스프링에서 어노테이션(@JsonFormat, @DateTimeFormat)을 이용한 JSON 객체 Date 형식 변환
사용 설명에 앞서 @JsonFormat, @DateTimeFormat에 대해 정확한 정보를 찾다가 아래에 포스팅을 찾아는데 설명이 잘 되어있어서 들어가서 한번 정독하고 사용하면 더 도움이 될 듯 합니다.
[참고] https://jojoldu.tistory.com/361
사용 설명
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startDate;
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endDate;
서버 Get 요청 @ModelAttribute
에는@DateTimeFormat
사용서버 Post 요청 @RequestBody
에는 JSON 객체를@DateTimeFormat과 @JsonFormat
로 모두 사용- 2개의 어노테이션 모두가 있으면 선언 시에는 @JsonFormat이 먼저 적용
서버 응답 시 ResponseBody
에서는@JsonFormat
만 적용
의존성
- Spring Boot 2.0에서는 JSR 310이 의존성 기본적으로 되어있음 그래서 아래와 같이 따로 의존성을 추가 할 필요가 없다.
compile('com.fasterxml.jackson.datatype:jackson-datatype-jsr310')
@DateTimeFormat
vs @JsonFormat
- @JsonFormat은 Jackson의 어노테이션
- @DateTimeFormat은 Spring의 어노테이션
Spring의 기본 JSON 컨버터는 Jackson이며, @JsonFormat은 LocalDate 혹은 LocalDateTime을 JSON으로 직렬화할때 포맷을 관리합니다.
[참고]
- https://jojoldu.tistory.com/361