java - 如何阻止 jackson 在反序列化时更改日期时间

标签 java date spring-boot jackson

我正在尝试通过对我的 Spring Boot 应用程序的 get 请求来检索带有日期字段的对象。数据库中的日期是正确的,调试时也是正确的,但当 Jackson 反序列化它们时,日期会改变 1 小时。

上课

@JsonFormat(pattern = "dd-MM-yyyy HH:mm")
private Date matchDate;

在application.properties中

spring.jackson.deserialization.adjust-dates-to-context-time-zone=false

我不知道为什么它会改变它们,我希望 jackson 完全按照原样反序列化日期

最佳答案

该设置的文档说,

"If enabled, contextual TimeZone will essentially override any other TimeZone information; if disabled, it will only be used if value itself does not contain any TimeZone information."

因此,由于您的序列化格式不指示时区,因此该设置不会影响您的反序列化。

我的建议是,如果可能的话,在传递序列化日期时始终包含时区 - 这样,就不存在如何解释该值的问题。

关于java - 如何阻止 jackson 在反序列化时更改日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51443548/

相关文章:

Java Logger 向控制台生成多个相同的日志

java - 如何使用 Java Comparator 使用两个参数对 ArrayList 进行排序?

javascript - 仅当 3 个输入均未获得焦点时才运行 onblur 函数

spring - Bootstrap 4 种样式未使用 thymeleaf 的 spring boot 加载

java - eclipse RCP - 使 IFolder 在最后一个 View 关闭后持续存在

java - 广播接收者不响应广播消息

MySQL 查询显示下个月内的所有小时

c++ - 如何在 C++ 中将日期读入结构?

spring-boot - Google 应用引擎为我的 spring boot rest api 应用程序提供 404

java - 如何在 Spring Boot 中启用 CORS - 不工作