Quarkus JsonB переходит в другой часовой пояс

Quarkus jsonb десериализует json в формате UTC. Как я могу настроить другой часовой пояс?

public class AtendimentoDTO {
    public Integer id;

    @JsonbDateFormat("dd/MM/yyyy HH:mm:ss")
    private Date dataAtualizacao;
}

Вывод в UTC:

"dataAtualizacao": "23/05/2020 21:55:57"

зависимость maven:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-resteasy-jsonb</artifactId>
</dependency>

3 ответа

Решение

Я смог исправить это, изменив провайдера на jackson и используя:

@JsonFormat(shape = JsonFormat.Shape.STRING, 
  pattern = "dd/MM/yyyy HH:mm:ss", timezone = "GMT-3")    

Попробуйте этот формат даты:

@JsonbDateFormat("dd/MM/yyyy HH:mm:ss Z")

И, кстати, LocalDateTime не поддерживает часовые пояса. Вам нужно использовать ZonedDateTime, но я не уверен, работает ли это из коробки с JsonB, иначе вам нужно написать для него сериализатор и десериализатор.

Ты можешь использовать LocalDateTime вместо того Date. LocalDateTime примет часовой пояс системы по умолчанию, аDate по умолчанию будет использовать часовой пояс UTC.

Другие вопросы по тегам