我正在使用json.net反序列化DateTimeOffset
,但它忽略指定的時區並將日期時間轉換爲本地偏移量。例如,給定爲什麼Json.NET DeserializeObject將時區更改爲當地時間?
var content = @"{""startDateTime"":""2012-07-19T14:30:00+09:30""}";
當使用deserialised:
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
屬性將與提供的值匹配?
有趣的是,日期/時間實際上是正確的,在+ 14:30 9:30必須在15:30在+10:30。 – 2012-08-01 16:23:59
不知道這裏是否有任何關係,但看起來WCF序列化/反序列化在默認情況下也是這樣做的。也許同樣的解決方案可以幫助你:http://daveonsoftware.blogspot.com/2008/07/wcf-datetime-field-adjusted.html – 2012-08-01 17:21:13