0
我得到的返回實例foo
的對象C#的WebAPI項目爲Java。兌換日期與GSON
foo
包含在C#中兩個日期時間屬性。我已經配置了我的WebAPI的時間之後點後七位數字總是返回。所以,當對象得到了序列化JSON成,它看起來像這樣:
{
"Timestamp": "2017-02-11T11:49:00.0000000",
"Changed": "2017-02-11T11:51:49.2620373"
}
現在,我嘗試反序列化的Java對象。我選擇了gson
這一點。 我配置gson
這樣的:
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").create();
反序列化後,在Java樣子的兩個屬性:
- 時間戳:
Sat Feb 11 11:49:00
,這是對 - 更改:
Sat Feb 11 12:35:29
,這是錯誤的
所以我的問題是,它可以配置gson
與七位數字的準確性工作,或者我應該去除的四項?
不要叫'setDateFormat()',並映射到'LocalDateTime ',它實際上可以處理3位數以上的小數秒。 – Andreas
安德烈亞斯是正確的:'Date'不能抱毫秒分數以及'SimpleDateFormat'不能和你面臨的是它的寬鬆風格:溢出的MS值被解釋爲秒上。如果你可以自由使用Java 8,那麼你應該使用'LocalDateTime'併爲它實現一個簡單類型的適配器。如果你不能使用Java 8'LocalDateTime'出於任何原因,你可能會檢查另一個日期/時間庫,例如約達時間,如果他們能解析MS分數和輪他們以'java.util.Date'毫秒分數。 –