Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Formato Global LocalDate

Bom dia, Obrigado pela atenção de todos. Atualizei a versão do projeto para 2.7.5 e agora todas classes que tenham atributos LocalDate estão retornando na resposta do servico da seguinte forma:

"dataNascimento": [
    1966,
    12,
    1
  ],
  "dataCadastro": [
    2012,
    5,
    26
  ],
  ...

No application.yml as minhas configurações está assim:

   jackson:
      time-zone: America/Sao_Paulo
      locale: pr-BR
      date-format: yyyy-MM-dd@HH:mm:ss.SSSZ

Antes da atualização estava normal!

2 respostas
solução!

Oi Arthur,

Para personalizar o formato dos atributos de datas se utiliza essa anotação:

@JsonFormat(pattern="dd/MM/yyyy")
private LocalDate dataNascimento;

A propriedade spring.jackson.date-format somente funciona para as classes antigas Date e Calendar. Para alterar o padrão das classes de data do Java 8 você deve criar uma classe de configuração:

@Configuration
public class JacksonLocalDateConfigurations {

    private static final String datePattern = "dd/MM/yyyy";
    private static final String dateTimePattern = "dd/MM/yyyy HH:mm:ss";

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer localDateCustomizer() {
        return builder -> {
            builder.simpleDateFormat(dateTimePattern);
            builder.serializers(new LocalDateSerializer(DateTimeFormatter.ofPattern(datePattern)));
            builder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateTimePattern)));
        };
    }

}

Muito Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software