C# JSon反序列化日期时间

C# JSon反序列化日期时间,c#,.net,json,json.net,C#,.net,Json,Json.net,我得到了一个从Api返回的日期,它是一个Json对象,如下所示:Date(1371510000000) 当我打开internet Explorer并在url中粘贴以下内容时:javascript:alert(日期(1371510000000)) 我收到一个日期为2013年6月19日的警报(这是正确的) 但是,当我使用NewtonSoft的Json反序列化程序在.NET中反序列化此日期时,如下所示: var x = Newtonsoft.Json.JsonConvert.DeserializeOb

我得到了一个从Api返回的日期,它是一个Json对象,如下所示:Date(1371510000000) 当我打开internet Explorer并在url中粘贴以下内容时:javascript:alert(日期(1371510000000)) 我收到一个日期为2013年6月19日的警报(这是正确的)

但是,当我使用NewtonSoft的Json反序列化程序在.NET中反序列化此日期时,如下所示:

var x = Newtonsoft.Json.JsonConvert.DeserializeObject<DateTime>("\"/Date(1371510000000)/\"");
var x=Newtonsoft.Json.JsonConvert.DeserializeObject(“\”/Date(1371510000000)/\”);
它将日期解析为2013年6月17日(这是不正确的)

我有没有做错什么


谢谢。

javascript日期对象是.Net无法序列化的对象

您要做的是在转移对象之前确定日期:

function fixDate(date) {
    if (date != undefined && date != null && date.getDate) {
        var curr_date = date.getDate();
        var curr_month = date.getMonth() + 1; //Months are zero based
        var curr_year = date.getFullYear();
        date = curr_date + "/" + curr_month + "/" + curr_year;
        date = date.replace(/\b\d\b/g, '0$&');
    }
    return date;
}
此代码用于“dd/MM/yyyy”格式,但您可以根据自己的喜好对其进行格式化


请记住在您的服务器中选择特定格式

似乎是本地时间的问题:我已将参数JSonSerializerSettings与我的本地区域性、时区信息一起插入,但问题仍然存在。为什么您认为“2013年6月19日”对1371510000000是正确的?运行javascript不会每次都给出相同的结果。我不认为你的javascript做了你认为的事情。可能很旧,但你需要写:
javascript:alert(new Date(1371510000000))
我不明白为什么浏览器会正确地反序列化相同的日期。有没有办法让.NET也这样做?当你在浏览器中运行它时,它会运行javascript代码,.NET没有相同的反序列化程序