json - 将 Json 日期时间转换为 C# 日期时间

标签 json json.net

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

{
   "uploadedOn" : "\/Date(1416421811000-0800)\/"
}

试图弄清楚如何将其转换为 C# DateTime。测试了一些非常接近的想法,但没有成功。我认为 -0800 可能是 GMT 偏移量并解析排除该值的值,但这不起作用。 谢谢。

最佳答案

您返回的内容看起来像一个偏移量为 -8 小时的 Java 时间戳,这将需要一些工作来解析(不幸的是,没有任何 native 解析方法可以开箱即用)。

这样的东西(根据需要调整)应该适合你:

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);      
    }
}

关于json - 将 Json 日期时间转换为 C# 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236114/

相关文章:

javascript - AngularJS 如何解码包含 token 和用户信息的 jsonp 响应?

java - 是否有公认的或新兴的 JSON 表单和字段定义格式?

javascript - NewtonSoft JSON 转换器序列化但执行起来很奇怪。怎么修?

c# - 如何反序列化不同类型的集合?

c# - Newtonsoft 在序列化时对子元素进行内联格式化

serialization - Json.Net 无法序列化从字典派生的类的属性

json - django 休息 api : JSON parse error - No JSON object could be decoded

java - Android Studio httpURLConnection 应用程序崩溃

javascript - 如何从 json 响应中删除字符串

c# - 当 JSON 中缺少属性且不可为 null 时,如何抛出 JsonSerializationException?