答案 0 :(得分:2)
首先,3190549620000
非常大,在使用您链接的方法时会导致溢出。
3190549620
(除以1000,表示原文位于 milli 秒)效果更好。
其次,如果我使用您链接的方法恢复到unix时间戳,我会得到1390565820。
比较
1390565820
3190549620
如果我将示例中的31反转为13,我会得到正确的日期,但时间不正确。你能验证并确认你的输入是以31而不是13开始吗?
日期问题很简单:它似乎是5:30的区别。你在哪个时区?我的猜测是IST,所以这只是一个时区偏移问题:)
您的时间戳()似乎是UTC。
将链接中的代码更改为:
private static DateTime ConvertFromUnixTimestamp(double timestamp)
{
var origin = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
return origin.AddSeconds(timestamp / 1000).ToLocalTime();
}
如果我使用1390549620000
而不是3190549620000
作为输入,我会得到您想要的结果。
答案 1 :(得分:0)
首先,您需要知道该整数表示的内容。通常在许多服务中使用EPOCH日期。这些EPOCH编号是自1970年1月1日0:0:0以来的秒,是Unix中的第一个日期。但是,您正在使用的服务可能会返回您的日期或其他日期格式。你能看一下docs吗?