Почему 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);

Объект obj будет содержать свойство, содержащее DateTimeOffset, но значение будет 2012-07-19T15:30:00+10:30, то есть преобразовано в местный часовой пояс вместо сохранения исходного часового пояса.

Есть ли способ получить значение, которое будет проанализировано, как ожидалось, чтобы результирующее свойство DateTimeOffsetсоответствовало предоставленному значению?

34
задан Anthony Mastrean 17 December 2012 в 15:47
поделиться