sourcetip

스프링 부트를 사용한 json 출력의 날짜 형식

fileupload 2023. 2. 9. 22:25
반응형

스프링 부트를 사용한 json 출력의 날짜 형식

저는 REST 어플리케이션 작성을 위한 스프링 부트 작업을 하고 있습니다.그리고 아래와 같이 DTO가 있습니다.

public class Subject {

private String uid;
private String number;
private String initials;
private Date dateOfBirth;

그리고 저는 Spring-Hateos를 쓰는데 제 컨트롤러의 리언 타입은ResponseEntity<Resources<Resource<Subject>>>날짜를 "yyy-mm-dd" 형식으로 표시해 주세요.

JSON 포맷으로 serialize하기 위한 Jackson 정수화가 응용 프로그램에 있는 경우 Jackson anotation @JsonFormat을 사용하여 날짜를 지정된 포맷으로 포맷할 수 있습니다.
당신의 경우 다음 날짜로 데이트가 필요한 경우yyyy-MM-dd지정해야 하는 형식@JsonFormat이 형식을 적용할 필드 위에 있습니다.

예:

public class Subject {

     private String uid;
     private String number;
     private String initials;

     @JsonFormat(pattern="yyyy-MM-dd")
     private Date dateOfBirth;  

     //Other Code  

}  

문서:

속성 값을 직렬화하는 방법에 대한 세부 정보를 구성하는 데 사용되는 주석입니다.

기타 레퍼런스 문서

이게 도움이 됐으면 좋겠다.

대부분의 경우 "yyy-MM-dd" 작은 후자 'm'은 분 섹션을 의미합니다.

당신은 두 가지를 해야 한다.

  • 더하다spring.jackson.serialization.write-dates-as-timestamps:false당신의 안에서application.properties그러면 날짜를 타임스탬프로 변환하지 않고 ISO-8601 호환 형식을 사용합니다.

  • getter 메서드에 주석을 달아 형식을 사용자 정의할 수 있습니다.dateOfBirth의 재산.@JsonFormat(pattern="yyyy-MM-dd")

Spring Boot 버전 1.2.0 이후RELEASE, 에 추가할 수 있는 속성이 있습니다.application.properties모든 클래스에 기본 날짜 형식을 설정하려면spring.jackson.date-format.

날짜 형식의 예에서는 속성 파일에 다음 행을 추가합니다.

spring.jackson.date-format=yyyy-MM-dd

레퍼런스 https://docs.spring.io/spring-boot/docs/1.2.0.RELEASE/reference/html/common-application-properties.html

모든 날짜의 형식을 변경하려면 작성기 사용자 지정기를 추가할 수 있습니다.날짜를 ISO 8601로 변환하는 빈의 예를 다음에 나타냅니다.

@Bean
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
    return new Jackson2ObjectMapperBuilderCustomizer() {
        @Override
        public void customize(Jackson2ObjectMapperBuilder builder) {
            builder.dateFormat(new ISO8601DateFormat());        
        }           
    };
}

언급URL : https://stackoverflow.com/questions/29027475/date-format-in-the-json-output-using-spring-boot

반응형