我有它返回一个json
这样的服务:C#:无法解析正确的日期和时间设置为当前系统时间区
[
{
"title":"First event",
"startDate":"\/Date(1495512000000-0400)\/",
"endDate":"\/Date(1495857540000-0400)\/",
}
]
我反序列化JSON输出到列表中相对于模型我已经定义:
型号
public class EventModel
{
[JsonProperty("title")]
public string Title { get; set; }
[JsonProperty("startDate")]
public DateTime StartDate { get; set; }
[JsonProperty("endDate")]
public DateTime EndDate { get; set; }
}
C#deseria的代码lization
我正在使用Newtonsoft.Json
包进行反序列化。
List<EventModel> lstEvent = new List<EventModel>();
lstEvent = JsonConvert.DeserializeObject<List<EventModel>>(await objMyServices.GetData());
所以,当我调试我得到以下输出在两个不同的时区这种情况下:
对于GMT + 5:30(加尔各答 - 印度):
开始时间:23 -05-2017 09:30:00
结束时间:27-05-2017九时29分零零秒
对于GMT-4:00(纽约):
开始时间:23-05-2017 00:00:00
结束时间:26-05-2017 23:59:00
因此,对于每一条记录,开始时间不解析,当我切换到GMT-4:00(纽约)时的相应系统时区。 我在这里错过了什么?
这不是Json的日期。 JSon日期根据ISO8601进行格式化。这是AJAX时代的一种非常古老的格式。一些*非常*旧的服务仍然使用它,虽然 –
此外,您使用DateTime可以是本地,UTC或未定义。返回日期的DateTimeKind属性是什么?如果在纽约将本地时间转换为相同的UTC时间,则它们的显示方式会有所不同,但它仍然是同一时间。如果您没有明确指定要使用什么DateTimeKind –
@PanagiotisKanavos - 我相信它*应该*使用ISO8601,但它没有任何要求:https:// stackoverflow。com/questions/10286204/the-right-json-date-format – CodeNaked