为什么RestSharp以不同方式反序列化两个日期?

Mar*_*rio 4 .net c# restsharp deserialization asp.net-web-api

我有一个休息电话返回此信息(使用Chrome中的Advance Rest Client进行测试):

MyObject: [22]
0:  {
ID: "123456"
UTC1: "2013-04-19T03:12:32Z"
UTC2: "2013-04-19T03:12:36.994Z"
}
Run Code Online (Sandbox Code Playgroud)

抓取响应并将其序列化为对象的代码如下所示:

IRestResponse<List<MyObject>> response = client.Execute<List<MyObject>>(request);
Run Code Online (Sandbox Code Playgroud)

当我查看响应对象时,其中一个日期是错误的.如果我检查它或以任何方式使用对象我得到这个:

UTC1: 4/19/2013 3:12     
UTC2: 4/18/2013 9:12:36 PM <--CONVERTED!!
Run Code Online (Sandbox Code Playgroud)

我需要将两者序列化为响应中返回的时间,而不是从UTC/GMT转换为本地时间.如上所示,一个值保持其UTC值,而另一个值转换为我的时区.我认为两者都是通过Convert.DateTime函数运行的,但如果我用字符串执行,则两个值都会转换为本地时间.我意识到原始值(正在转换的那个)之一并不完全符合ISO 8601格式(精度太高); 不幸的是,这是我现在必须处理的数据.

谁能告诉我如何强制RestSharp确保两个日期都是UTC?

cgo*_*erg 8

使用Json.NET进行反序列化而不是内置的RestSharp反序列化器.

response = client.Execute(request);    
var myObjects = JsonConvert.Deserialize<List<MyObject>>(response)
Run Code Online (Sandbox Code Playgroud)