2016-12-21 34 views
0

我使用jackson-datatype-jsr310來支持Java 8時間數據類型。LocalDateTime未序列化爲時間戳

我創建了一個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)); 

並解析一個LocalDateTime後來我[2016,12,21,15,53,57,178]1482306837178

這裏是我的測試模型類Foo

public class Foo { 

    private Date t1; 

    private Timestamp t2; 

    private LocalDateTime t3; 

    // Getters & Setters 
} 

我看到的問題Jackson Java 8 DateTime serialisation並且問題所有者獲得了一個像1421261297.356000000這樣的序列化字符串。我沒有知道如何得到那個。我正在使用jackson 2.8.5和datatype-jsr310

+0

哪裏'BigDecimal'來這裏? – shmosel

+0

對不起,我的錯字。 @shmosel – bitweaver

+0

'println()'的完整輸出是什麼? – shmosel

回答

3

從傑克遜模塊日期時間文檔:

LOCALDATE,本地時間,LocalDateTime和OffsetTime,不能便攜轉換爲時間戳和啓用WRITE_DATES_AS_TIMESTAMPS當代替表示爲陣列。

完整的文檔頁面here