我序列化具有 DateTime 属性的对象,如下所示:JsonConvert.SerializeObject(my_object)
,然后在另一台机器上反序列化:result = JsonConvert.DeserializeObject<Result>(r);
。有些日期是错误的。我已经通过小提琴手检查过,当 json 中的日期看起来像这样时Date=2014-11-29T18:41:41.1672899
它被正确反序列化,但每 10 个左右的条目看起来像Date=2014-11-29T18:55:39.1175417+00:00
(注意 +00:00),然后它被反序列化为日期偏移了两个小时。为什么会这样以及如何解决这个问题?
您可以在JsonSerializerSettings
上显式将DateTimeZoneHandling
设置为DateTimeZoneHandling.Utc
:
Result result = JsonConvert.DeserializeObject<Result>(r, new JsonSerializerSettings
{
DateTimeZoneHandling = DateTimeZoneHandling.Utc
});