java - ZonedDateTime序列化差异与不同服务器上相同的代码和相同的依赖关系
问题描述
我们在 Java 中使用 ObjectMapper 的杰克逊序列化。
对于 a LocalDateTime
,在我的本地运行的代码输出以下日志:
"date":"2019-11-28T18:56:00.328Z"
在 jenkins 上运行的相同代码会产生其他结果:
"date":{"offset":{"totalSeconds":0,"id":"Z","rules":{"fixedOffset":true,"transitions":[],"transitionRules":[]}},"zone":{"totalSeconds":0,"id":"Z","rules":{"fixedOffset":true,"transitions":[],"transitionRules":[]}},"dayOfWeek":"THURSDAY","dayOfYear":332,"hour":18,"minute":46,"second":55,"nano":948000000,"year":2019,"month":"NOVEMBER","dayOfMonth":28,"monthValue":11,"chronology":{"calendarType":"iso8601","id":"ISO"}}
在应用程序启动中,我们执行以下操作:
Json.mapper.findAndRegisterModules();
Json.mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
Json.mapper.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);
Json.mapper.enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS);
pom.xml 中的依赖项是
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.6.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.4</version>
</dependency>
编辑:
詹金斯机器有不同的语言环境/时区
解决方案
推荐阅读
- python - 如何在 Python 上的 PCA 中创建相关矩阵?
- python-3.x - Gunicorn 禁用超时
- string - 从LUA中的字符串中删除特殊字符
- html - 我似乎无法让我的代码在页脚中居中并在屏幕上伸展
- django - 如何在文章模型上显示类别名称?
- python - 写在一行
- visual-studio - 我可以使用 Visual Studio Code 创建/发布 SSIS 包吗?
- swift - decodeObject(forKey:) 和 decodeObjectForKey(_:) 有什么区别
- python - 在 python Tkinter Treeview 中选择多个项目时出错
- python - 不明白为什么这个 while 循环没有终止