我正在使用一个返回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#代码正确吗?
答案 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方法?