我得到了将UNIX时间转换为DaTime的功能,无论如何我现在需要将函数从DateTime转换为UNIX时间戳,但这有点不对,因为当我以某种方式传递DateTime时,最后3位数字没有显示实例我有这个时间戳:“1300124700345”,它等于:14.03.2011 5:45 PM。当我把它传递给我的函数时,我正在检索:“1300124700” - 最后3位数字被淘汰。
static readonly DateTime UnixEpoch =
new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
public static long ToUnixTime(DateTime date)
{
return Convert.ToInt64((date - UnixEpoch).TotalSeconds);
}
答案 0 :(得分:0)
Unix计算自1970年1月1日以来的秒数。你的功能是正确的,它正在返回TotalSeconds
。
1300124700345秒大约是40000年,这是错误的。
答案 1 :(得分:0)
另外,您可以查看此页面:Epoch converter,它将为您提供一种测试数据的简便方法。
在此:epoch on wikipedia阅读一些关于它的行为和准确程度的有趣内容。
并使用此:
var epoch = (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
得到你想要的东西。