C# 和 JavaScript 中的 DateTime 整数值

DateTime integer value in C# and JavaScript

我正在使用 returns 我 JSON 数据的网络服务。

JSON 数据中的一个值是日期时间。

1421788745000 - 这是为该日期时间字段返回的值。

当我尝试将该值转换为 DateTime(使用以下代码)时,它 returns me 01/02/0001 3:29:38 PM。

 foreach(dynamic jResult in jsonResult["twtDetails"])
                    {                        
                        DateTime date = new DateTime(long.Parse("1421788745000"));
                        DateTime dt = new DateTime(createdAtTime);
                    }

但是当我尝试使用以下 javascrit 代码(使用此站点 - http://jsfiddle.net/)解析相同的值时,我得到了一个有效日期:2015 年 1 月 20 日星期二

alert(new Date(1421788745000).toUTCString());

有人可以告诉我正确的 C# 代码是什么吗?

据我所知,1970 年有些神奇。

试试这个:

public DateTime ConvertDate(long unixTime)
{
    var date= new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    return date.AddSeconds(unixTime);
}

也许,你可以深入了解Unix Time

C# DateTime 和 JavaScript Date 的构造函数不同。 JavaScript Date 预计自 1970 年 1 月 1 日 "Unix Epoch" 以来的毫秒数。此代码在 C# 中应该适用于您:

    var dt = new DateTime(1970,1,1).AddMilliseconds(1421788745000);

您尝试过使用JavaScriptSerializer.Deserialize方法吗?