2017-08-04 84 views
0

我正在使用JSON.net Compact Framework - 版本3.5r8。引用的文件是:Newtonsoft.Json.Compact.dllJSON.net Compact Framework解析ISO8601日期

如果我有一個JSON對象,在ISO 8601格式的日期/時間,如:

{ 
    "name": "TestObject", 
    "timestamp": "2017-08-04T13:39:16+01:00" 
} 

我反序列化這個使用JsonConvert.DeserializeObject<TestObject>(response),C#解析timestamp屬性爲DateTime預期,但是時間在上午05:39解析,因此顯然存在時區問題,導致解析從UTC時間開始8小時。

我很欣賞JSON.net的「完整」/最新版本確實有我們可以通過JsonSerializerSettings來改變日期時區處理的選項,但這些選項似乎都不適用於JSON.net Compact。

如何使UTC時間戳得到預期的解析?

回答

0

是的,你可以設置時區。

var json = JsonConvert.DeserializeObject<TestObject>(response, new JsonSerializerSettings 
      { 
       DateTimeZoneHandling = DateTimeZoneHandling.Utc 
      }); 
+0

感謝您的回覆,但如前所述,此版本的JSON.net中沒有公開DateTimeZoneHandling選項。 – George

+0

@George Edited答案,那會工作嗎? –

+0

不幸的是,該命名空間中唯一可用的屬性在這裏:http://imgur.com/a/RiqAy – George