Dto 파라미터에 @DateTimeFormat 설정 시, 입력된 문자열 값을 Spring 에서 역직렬화하여 LocalDate 또는 LocalDateTime 으로 변환시켜준다.
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@Schema(description = "생성시간 샘플", example = "2022-10-07T15:16:50.599")
private LocalDateTime yyyyMMddHHmmssSSS;
@JsonFormat 어노테이션으로도 역직렬화가 가능하다.
@JsonFormat(pattern = "yyyyMMddHHmmssSSS")
@Schema(description = "생성시간 샘플", example = "20221007151650599")
private LocalDateTime yyyyMMddHHmmssSSS;
@DateTimeFormat 로 년월일
과 시분초
를 붙이게 될 경우, content-type=application/json
일 때 파싱오류가 발생함에 주의한다.
참고) ObjectMapper를 통해 LocalDate 으로 역직렬화하려는 경우 Spring Boot 기준 jackson-datatype-jsr310
디펜던시가 추가로 필요하다.
내부적으로 ObjectMapper 를 통해 직렬화하는 과정에서 LocalDate, LocalDateTime 직렬화에 아래 디펜던시가 필요함.
jackson-annotations
디펜던시에 있는 기능이기 때문에 Spring 사용 시, 관련 디펜던시를 따로 추가해야 한다.참고 글) @DateTimeFormat, @JsonFormat 분석글
LocalDateTime, LocalDate
로 변환시킨다.@EnableWebMvc
어노테이션 설정 시, DefaultFormattingConversionService 로 설정된다.@GetMapping("/{id}")
public ApiResult<HelloFindRspDto> find(@PathVariable Long id) {
return ok(helloService.find(id));
}