我们应该如何在ASP.NET C#应用程序中解析特定的JSON日期格式?

我们应该如何在ASP.NET C#应用程序中解析特定的JSON日期格式?,c#,json,date,json.net,C#,Json,Date,Json.net,我们正在为应用程序中的一个模块使用第三方供应商 Web服务端点由第三方供应商提供 对于其中一个处理发布评论的Web服务终结点 我们的ASP.NET C#web应用程序将返回一些JSON数据 我使用James Newton King Json.NET处理Json数据 在我们从 第三方供应商,我们得到以下关联日期 随着评论发布的时间: \"date_created\": 1375206707,\r\n 因此,我创建了一个ASP.NET DataContract C#类,它将 对应于我们正在接收的

我们正在为应用程序中的一个模块使用第三方供应商 Web服务端点由第三方供应商提供

对于其中一个处理发布评论的Web服务终结点

我们的ASP.NET C#web应用程序将返回一些JSON数据

我使用James Newton King Json.NET处理Json数据

在我们从 第三方供应商,我们得到以下关联日期 随着评论发布的时间:

\"date_created\": 1375206707,\r\n 
因此,我创建了一个ASP.NET DataContract C#类,它将 对应于我们正在接收的JSON数据

此外,我在C#类中有以下DataMember 这将对应于与之相关联的创建日期 发布的评论:

[DataMember(Name = "date_created")]
public string CommentCreationDate { get; set; }
请就如何解析以下JSON日期格式提出建议

在ASP.NET C#世界中(可能还涉及James Newton King Json.NET):


您可以通过创建自定义转换器来实现这一点


@谢谢你的帮助

由于我已经使用James Newton King Json.NET技术将创建日期放置在一个名为CommentCreationDate的基于字符串的数据成员中,因此我包含以下C#代码来获取日期时间值

CommentCreationUpdate=newDateTime(1970,1,1).AddSeconds(Int64.Parse(CommentCreationDate)).ToUniversalTime()

/() //“UTC不随季节变化而变化,但当地时间或民用时间可能会发生变化 //如果时区辖区遵守夏令时(夏季)。 //例如,UTC比上一天的当地时间提前5小时(即晚5小时) //美国东海岸在冬季,但提前4小时观测日光节约。”

//以下内容要求reader.Value为Unix时间戳

        return (new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Convert.ToDouble(reader.Value)));

为什么将创建日期放在名为CommentCreationDate的基于字符串的数据成员中?我的答案显示了如何将Datetime值直接输入Datetimeproperty@I4V谢谢你指出我的错误。直到现在我才知道TempClass是一个ASP.NETC#DataContract类。
string json = @"{""date_created"":1375206707}";

var obj = JsonConvert.DeserializeObject<TempClass>(json,new DateConverter());
public class TempClass
{
    public DateTime date_created;
}

public class DateConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof(DateTime);
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        return new DateTime(1970, 1, 1).AddSeconds((long)reader.Value);
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        throw new NotImplementedException();
    }
}
        return (new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Convert.ToDouble(reader.Value)));