Warum ändert JSON.NET DeserializeObject die Zeitzone auf lokale Zeit?

Ich bin mit json.net Deserialisieren eines DateTimeOffsetaber es ist die Nichtbeachtung der angegebenen Zeitzone und Konvertierung des datetime-der lokale offset. Zum Beispiel, gegeben

var content = @"{""startDateTime"":""2012-07-19T14:30:00+09:30""}";

Wenn deserialised mit:

var jsonSerializerSettings = new JsonSerializerSettings() { DateFormatHandling = DateFormatHandling.IsoDateFormat, DateParseHandling = DateParseHandling.DateTimeOffset, DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind };
var obj = JsonConvert.DeserializeObject(content, jsonSerializerSettings);

Obj enthält eine Eigenschaft, die eine DateTimeOffset aber der Wert wird 2012-07-19T15:30:00+10:30 d.h. Umgerechnet in die lokale Zeitzone statt, unter Beibehaltung der ursprünglichen Zeitzone.

Gibt es einen Weg, um den Wert analysiert werden, wie erwartet, so dass die resultierende DateTimeOffset Eigenschaft wird mit dem mitgelieferten Wert?

InformationsquelleAutor der Frage Dave Capper | 2012-07-19

Schreibe einen Kommentar