首页 > 解决方案 > 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>

编辑:

詹金斯机器有不同的语言环境/时区

标签: javaserializationjacksonzoneddatetime

解决方案


推荐阅读