Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problemas ao formatar datas com horas e minutos no Java

LocalDate hoje = LocalDate.now();
DateTimeFormatter formatadorComHora = DateTimeFormatter.ofPattern("dd/MM/yyyy hh:mm");
System.out.println(hoje.format(formatadorComHora));

Dado o código acima, esperava obter o horário local com horas e minutos, porem recebo de volta a seguinte exception:

Exception in thread "main" java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: ClockHourOfAmPm
    at java.base/java.time.LocalDate.get0(LocalDate.java:708)
    at java.base/java.time.LocalDate.getLong(LocalDate.java:687)
    at java.base/java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:308)
    at java.base/java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2691)
    at java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2330)
    at java.base/java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1843)
    at java.base/java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1817)
    at java.base/java.time.LocalDate.format(LocalDate.java:1816)

Existe algo que esqueci de adicionar na formatação da data?

1 resposta
solução!

LocalDate representa apenas uma data (sem a hora). Então "hh:mm" não faz sentido ao formatar um LocalDate. Use um em LocalDateTime se você quiser representar uma data e hora.

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