Sto usando json.net per deserializzare uno DateTimeOffset
, ma sta ignorando il fuso orario specificato e convertendo il datetime in offset locale. Ad esempio, datoPerché JS.NET DeserializeObject cambia il fuso orario in ora locale?
var content = @"{""startDateTime"":""2012-07-19T14:30:00+09:30""}";
Quando deserialised utilizzando:
var jsonSerializerSettings = new JsonSerializerSettings() { DateFormatHandling = DateFormatHandling.IsoDateFormat, DateParseHandling = DateParseHandling.DateTimeOffset, DateTimeZoneHandling = DateTimeZoneHandling.RoundtripKind };
var obj = JsonConvert.DeserializeObject(content, jsonSerializerSettings);
L'obj conterrà una struttura contenente una DateTimeOffset
ma il valore sarà 2012-07-19T15:30:00+10:30
cioè convertito al fuso orario locale invece di preservare fuso orario originale.
C'è un modo per ottenere il valore da analizzare come previsto in modo che la proprietà DateTimeOffset
risultante corrisponda al valore fornito?
La cosa divertente è che la data/ora è in realtà corretto, 14:30 in + 9:30 devono essere le 15:30 in +10: 30. –
Non sono sicuro se c'è qualche relazione qui, ma sembra che la serializzazione/deserializzazione di WCF faccia anche questo trucco di default. Forse la stessa soluzione potrebbe aiutarti: http://daveonsoftware.blogspot.com/2008/07/wcf-datetime-field-adjusted.html –