日付を返すサービスがあります。奇妙なことに、ほとんどの場合、次のように返されます。/Date(1364227320000)/
しかし、時にはこのような日付を返します/Date(1364050020139-0400)/
Visual Studio デバッガーを開くと、日付はそれぞれ同じように見えます (時間の違いを除く)
この違いは何が原因でしょうか?
日付を返すサービスがあります。奇妙なことに、ほとんどの場合、次のように返されます。/Date(1364227320000)/
しかし、時にはこのような日付を返します/Date(1364050020139-0400)/
Visual Studio デバッガーを開くと、日付はそれぞれ同じように見えます (時間の違いを除く)
この違いは何が原因でしょうか?
これは で処理されSystem.Runtime.Serialization.Json.JsonWriterDelegator.WriteDateTimeInDefaultFormat()ます。DateTimeKindがUnspecifiedまたはの場合Local、最後に UtcOffset を追加します (-400 の部分、つまり Utc - 4 時間)。
オブジェクトの種類DateTime(つまり、そのKindプロパティの値)によって異なります。DateTimewith を返す場合DateTimeKind.Utc、オフセットはありません。日時の種類がLocalorUnspecifiedの場合、オフセットが書き出されます。
形式の詳細については、 MSDN の「スタンドアロン JSON シリアル化」ページの「DateTime Wire Format」セクションを参照してください。