Dlaczego Json.NET DeserializeObject zmienia strefę czasową na czas lokalny?
Używam json.net do deserializacji aDateTimeOffset
, ale ignoruje określoną strefę czasową i konwertuje datetime na lokalny offset. Na przykład podane
var content = @"{""startDateTime"":""2012-07-19T14:30:00+09:30""}";
Przy deserializacji przy użyciu:
var jsonSerializerSettings = new JsonSerializerSettings() { DateFormatHandling = DateFormatHandling.IsoDateFormat, DateParseHandling = DateParseHandling.DateTimeOffset, DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind };
var obj = JsonConvert.DeserializeObject(content, jsonSerializerSettings);
Obiekt będzie zawierał właściwość zawierającą aDateTimeOffset
ale wartość będzie2012-07-19T15:30:00+10:30
tj. konwertowane na lokalną strefę czasową zamiast zachowywania oryginalnej strefy czasowej.
Czy istnieje sposób, aby uzyskać wartość do analizy zgodnie z oczekiwaniami, aby wynikDateTimeOffset
właściwość będzie odpowiadać podanej wartości?