2017-08-04 14 views
0

私は、JSON.net for Compact Framework - version 3.5r8を使用しています。参照ファイルはNewtonsoft.Json.Compact.dllです。JSON.net Compact FrameworkのISO8601日付の解析

私のような、ISO 8601形式の日付/時刻とJSONオブジェクトを使用している場合:

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

そして、私はJsonConvert.DeserializeObject<TestObject>(response)を使用して、これをデシリアライズ予想通り、C#は、日時にタイムスタンプのプロパティを解析し、しかし、時間は05:39 AMに解析されるので、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編集された答えは、その仕事ですか? –

+0

残念ながら、その名前空間で利用できる唯一のプロパティは次のとおりです:http://imgur.com/a/RiqAy – George