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

[Dúvida] Como alterar o formato da data?

Bom dia. Estou fazendo um projeto em paralelo e usando essas aulas como referência. No meu projeto eu preciso listar uma data e ela vem do banco no formato yyyy-mm-dd. Como faço para formatá-la para dd/mm/yyyy no Thymeleaf?

6 respostas

Olá Luis!

Cocê pode utilizar a biblioteca de formatação de datas do Spring, chamada #temporals. Ela permite que você formate datas de acordo com o padrão desejado.

No seu caso, para formatar a data do formato "yyyy-mm-dd" para "dd/mm/yyyy", você pode utilizar o seguinte código no seu arquivo Thymeleaf:

<span th:text="${#temporals.format(data, 'dd/MM/yyyy')}"></span>

Nesse exemplo, data é a variável que contém a data que você quer formatar. O método #temporals.format() recebe dois parâmetros: a data a ser formatada e o padrão desejado.

Dessa forma, a data será exibida no formato "dd/mm/yyyy" na sua página.

Espero ter ajudado e bons estudos!

Olá Rodrigo, obrigado pela resposta.

Fiz a modificação conforme você indicou, mas acredito que seja necessário fazer alguma configuração extra, pois ele lançou várias exceptions, conforme o recorte abaixo abaixo:

Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "#temporals.format(legislaturas.dataInicio,'dd/MM/yyyy') " (template: "legislaturas/listagem" - line 21, col 27)

Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "#temporals.format(legislaturas.dataInicio,'dd/MM/yyyy') " (template: "legislaturas/listagem" - line 21, col 27)

Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1004E: Method call: Method format(java.lang.String,java.lang.String) cannot be found on type org.thymeleaf.expression.Temporals
    at org.springframework.expression.spel.ast.MethodReference.findAccessorForMethod(MethodReference.java:225)

Aproveitando: Parabéns pelas suas aulas. Didática incrível.

solução!

Qual o tipo dessa variável legislaturas.dataInicio ?

Você se refere ao tipo dela na classe da entidade né?

Está como String:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ah então é esse o problema. Deveria ser LocalDate ou LocalDateTime (caso precise guardar o horário)

Muito bem. Resolvido. Muito obrigado pela paciência.