c# – Mono上的DateTime意外行为

考虑以下简单的代码:

TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1));
UInt64 microTimestamp = (Convert.ToUInt64(ts.TotalSeconds))*1000000;

Console.WriteLine ("Now: " + DateTime.UtcNow.ToString());
Console.WriteLine ("Microtimestamp: " + microTimestamp);

我已将其编译为exe并在两台机器上执行它:

设备1:MacBook

Now: 12.12.2013 16:26:57
Microtimestamp: 1386865617000000

设备2:Raspberry Pi

Now: 735214/00/0001 16:25:14
Microtimestamp: 0

两个设备都正确设置了日期和时间(我在操作系统的控制面板中检查过).为什么Raspberry没有产生正确的结果呢?

最佳答案
我的通灵调试能力告诉我你正在使用“硬浮动”Raspbian(而不是“软浮动”.Sasphian默认分配“硬浮动”构建(因为它更快),但目前有一个“硬浮” “浮点数调用约定问题引起的发行版.

您的选择是:

>使用“软浮动”发行版(即擦拭SD卡并安装Raspbian的“软浮动”版本)
>补丁单声道

也可以看看

> What do you mean by “soft float ABI” and “hard float ABI”?
> How can I tell if I am using the hard-float or the soft-float version of Debian/Raspbian?
> CSharp on RPi

转载注明原文:c# – Mono上的DateTime意外行为 - 代码日志