将Json DateTime转换为C#DateTime

将Json DateTime转换为C#DateTime,json,json.net,Json,Json.net,我正在使用REST服务,该服务以以下格式返回日期: { "uploadedOn" : "\/Date(1416421811000-0800)\/" } 我想知道如何把它转换成c#DateTime。测试了一些非常接近但没有成功的想法。我认为-0800可能是GMT偏移量,并解析不包括它的值,但这不起作用。 谢谢。您得到的看起来像是一个偏移量为-8小时的Java时间戳,这将需要一些解析工作(不幸的是,没有一种本机解析方法是现成的) 这样(根据需要进行调整)的方法应该适合您: public cl

我正在使用REST服务,该服务以以下格式返回日期:

{
   "uploadedOn" : "\/Date(1416421811000-0800)\/"
}
我想知道如何把它转换成c#DateTime。测试了一些非常接近但没有成功的想法。我认为-0800可能是GMT偏移量,并解析不包括它的值,但这不起作用。
谢谢。

您得到的看起来像是一个偏移量为-8小时的Java时间戳,这将需要一些解析工作(不幸的是,没有一种本机解析方法是现成的)

这样(根据需要进行调整)的方法应该适合您:

public class Program
{

    public static void Main()
    {   
        var offsetParsedDate = GetDateTimeOffset("1416421811000-0800");

        Console.WriteLine(offsetParsedDate);

    }

    static DateTimeOffset GetDateTimeOffset(string inDate)
    {
        string delimiter = "-";

        if(inDate.IndexOf("+") != -1)
        {
            delimiter = "+";
        }

        string[] dateParts = inDate.Split(new string[] { delimiter }, 2, System.StringSplitOptions.None);

        DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Unspecified);

        var parsedDate = epoch.AddMilliseconds(Convert.ToDouble(dateParts[0]));

        var offset = TimeSpan.ParseExact(dateParts[1], "hhmm", null, delimiter == "-" ? System.Globalization.TimeSpanStyles.AssumeNegative : System.Globalization.TimeSpanStyles.None);

        return new DateTimeOffset(parsedDate, offset);      
    }
}

你有没有任何迹象表明帕伦斯值对应的日期?是的。这是与xml相同的服务返回的值,很容易解析。2014-11-19T10:30:11