我需要将日期时间转换为 Unix 时间戳。所以我googled它正在寻找一些示例代码
在我看到的几乎所有结果中,他们都使用 double
作为此类函数的返回值,即使在显式使用 floor
将其转换为整数时也是如此。 Unix 时间戳总是整数。那么使用 long
或 int
而不是 double 有什么问题呢?
static double ConvertToUnixTimestamp(DateTime date)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
TimeSpan diff = date - origin;
return Math.Floor(diff.TotalSeconds);
}
最佳答案
通常,我会用一个 unsigned long 来实现它,而不是要求用户向上或向下舍入并转换为 int 或 long。有人可能想要 double 的原因之一是是否使用了类似于 timeval 的结构,例如 gettimeofday .它允许亚秒级精度...
关于c# - 为什么 DateTime 到 Unix 时间使用 double 而不是整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5206880/