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



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

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

试图弄清楚如何将其转换为 c# 日期时间。测试了一些接近但没有骰子的墙外想法。 我认为 -0800 可能是 GMT 偏移量并解析不包括该值的值,但这不起作用。谢谢。

你得到的看起来像一个 Java 时间戳,偏移量为 -8 小时,这将需要一些工作来解析(不幸的是,没有一种本机解析方法可以开箱即用)。

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

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

相关内容

  • 没有找到相关文章

最新更新