LocalDateTime 未序列化为时间戳

bit*_*ver 2 java jackson

jackson-datatype-jsr310用来支持 Java 8 时间数据类型。

我创建了一个这样的 ObjectMapper:

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false);
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);
objectMapper.registerModule(new JavaTimeModule());

Foo foo = new Foo();
LocalDateTime t = LocalDateTime.now();
foo.setT1(Date.from(t.toInstant(ZoneOffset.UTC)));
foo.setT2(Timestamp.valueOf(t));
foo.setT3(t);

System.out.println(objectMapper.writeValueAsString(foo));
Run Code Online (Sandbox Code Playgroud)

并解析了一个 LocalDateTime 然后我[2016,12,21,15,53,57,178]没有1482306837178

这是我的测试模型类 Foo

public class Foo {

    private Date t1;

    private Timestamp t2;

    private LocalDateTime t3;

    // Getters & Setters
}
Run Code Online (Sandbox Code Playgroud)

我看到问题Jackson Java 8 DateTime serialization和问题所有者得到一个序列化的字符串,如1421261297.356000000. 我不知道如何得到它。我正在使用 jackson 2.8.5 与datatype-jsr310.

kun*_*ruh 5

从杰克逊模块日期时间文档:

LocalDate、LocalTime、LocalDateTime 和 OffsetTime,它们无法可移植地转换为时间戳,而是在启用 WRITE_DATES_AS_TIMESTAMPS 时表示为数组。

完整的文档页面在这里