3

DateTime をシリアライズする場合、UTC 形式にシリアライズされるように JSON.Net を設定することは可能ですか。文字列から逆シリアル化すると、「LocalTime」に逆シリアル化されます。例えば:

  • シリアル化
    • 2012/01/01 16:00:00 (種類 = UTC) 次のように保存2012-01-01T16:00:00Z
    • 01/01/2012 16:00:00 (種類 = ローカル、GMT +1 付き) -> として保存2012-01-01T15:00:00Z
  • 逆シリアル化 (Local Time = GMT+1 のマシンを想定)
    • 2012-01-01T16:00:00Z-> 01/01/2012 17:00 +1GMT に逆シリアル化 (種類 = ローカル)
    • 2012-01-01T15:00:00Z-> 01/01/2012 16:00 +1GMT に逆シリアル化 (種類 = ローカル)

ただし、これを「自動的に」発生させ、毎回設定で指定する必要がないようにしたいと思います-グローバル設定のように。これは可能ですか?

4

2 に答える 2

6

ASP.NET WebAPI では可能です。これを試して:

// Converters will be userd during serialization (override DateTimeZoneHandling)
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AdjustToUniversal });
// DateTimeZoneHandling will be effective during deserialization
config.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local;
于 2013-07-24T10:20:59.470 に答える