Почему Json.NET DeserializeObject меняет часовой пояс на местное время?
Я использую json.net для десериализацииDateTimeOffset
, но он игнорирует указанный часовой пояс и преобразует дату и время в локальное смещение. Например, учитывая
var content = @"{""startDateTime"":""2012-07-19T14:30:00+09:30""}";
При десериализации с использованием:
var jsonSerializerSettings = new JsonSerializerSettings() { DateFormatHandling = DateFormatHandling.IsoDateFormat, DateParseHandling = DateParseHandling.DateTimeOffset, DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind };
var obj = JsonConvert.DeserializeObject(content, jsonSerializerSettings);
Объект будет содержать свойство, содержащееDateTimeOffset
но значение будет2012-07-19T15:30:00+10:30
т.е. преобразован в местный часовой пояс вместо сохранения исходного часового пояса.
Есть ли способ получить значение, которое будет проанализировано, как и ожидалось, чтобы в результатеDateTimeOffset
свойство будет соответствовать заданному значению?