Quarkus JsonB 更改为不同的时区
Quarkus JsonB change to different timezone
quarkus jsonb 正在 UTC 中反序列化 json。如何配置不同的时区?
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>
您可以使用 LocalDateTime
而不是 Date
。 LocalDateTime 将采用默认的系统时区,而 Date
将默认使用 UTC 时区。
试试这个日期格式:
@JsonbDateFormat("dd/MM/yyyy HH:mm:ss Z")
据我所知,LocalDateTime 不支持时区。您需要使用 ZonedDateTime,但我不确定这是否适用于 JsonB,否则您需要为其编写序列化程序和反序列化程序。
我可以通过将提供商更改为 jackson
并使用:
来修复它
@JsonFormat(shape = JsonFormat.Shape.STRING,
pattern = "dd/MM/yyyy HH:mm:ss", timezone = "GMT-3")
quarkus jsonb 正在 UTC 中反序列化 json。如何配置不同的时区?
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>
您可以使用 LocalDateTime
而不是 Date
。 LocalDateTime 将采用默认的系统时区,而 Date
将默认使用 UTC 时区。
试试这个日期格式:
@JsonbDateFormat("dd/MM/yyyy HH:mm:ss Z")
据我所知,LocalDateTime 不支持时区。您需要使用 ZonedDateTime,但我不确定这是否适用于 JsonB,否则您需要为其编写序列化程序和反序列化程序。
我可以通过将提供商更改为 jackson
并使用:
@JsonFormat(shape = JsonFormat.Shape.STRING,
pattern = "dd/MM/yyyy HH:mm:ss", timezone = "GMT-3")