我需要将DateTime转换为Unix时间戳.所以我
googled它寻找一些示例代码
在我看到的所有结果中,他们使用double作为这样的函数的返回值,即使显式地使用floor将其转换为整数. Unix时间戳总是整数.那么使用long或int而不是double是什么问题呢?
static double ConvertToUnixTimestamp(DateTime date) { DateTime origin = new DateTime(1970,1,0); TimeSpan diff = date - origin; return Math.Floor(diff.TotalSeconds); }
解决方法
通常,我将使用unsigned long实现它,而不是要求用户向上或向下舍入并转换为int或long.有人可能想要双重的一个原因是,如果使用类似于timeval的结构,如
gettimeofday.它允许次秒精度…