将 Spring REST 端点配置为在序列化响应对象中的日期字段时忽略附加时区
Posted
技术标签:
【中文标题】将 Spring REST 端点配置为在序列化响应对象中的日期字段时忽略附加时区【英文标题】:Configure Spring REST endpoint to ignore appending timezone when serializing date fields in response objects 【发布时间】:2019-12-30 09:23:08 【问题描述】:我的 Spring Boot 应用程序中有一个端点,它返回日期范围。 后端是 PostgreSQL,我的数据库中的日期列被定义为 without timezone
我希望我的 Spring Boot 应用程序中的端点按原样返回日期。
目前,日期使用 Spring Boot 服务器的时区进行序列化。
有没有办法配置我的 Spring Boot 应用程序以在序列化时选择性地忽略将时区数据附加到日期?
实体类如下
public class Period
private Date startdate;
private Date enddate;
【问题讨论】:
您可以发布使用日期列的实体吗? 嗨@Sebastian,我已将实体包含在问题中 【参考方案1】:我刚刚发现了一个类似的帖子,里面有一个优雅的解决方案here
只需在application.properties
文件中添加所需的时区即可解决问题
spring.jackson.time-zone= America/Sao_Paulo
【讨论】:
【参考方案2】:您可以使用更现代的java.time
包,而不是过时的java.util.Date
。
在您的情况下,您可以使用LocalDate
(或LocalDateTime
)。它不包含任何有关时区或偏移的信息,默认情况下它被序列化为 ISO 8601 格式,如2019-12-31T23:59:59
。
【讨论】:
以上是关于将 Spring REST 端点配置为在序列化响应对象中的日期字段时忽略附加时区的主要内容,如果未能解决你的问题,请参考以下文章
列出所有已部署的 REST 端点(spring-boot、jersey)