C#和JavaScript中的DateTime整数值

时间:2015-01-20 22:57:38

标签: javascript c# datetime

我正在使用一个返回JSON数据的Web服务。

JSON数据中的一个值是datetime。

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

当我尝试将该值转换为DateTime(使用下面的代码)时,它会返回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#代码正确吗?

3 个答案:

答案 0 :(得分:0)

据我所知,1970年有一些魔力。

试试这个:

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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