C#2 DateTime不等于

时间:2016-10-06 11:51:09

标签: c# datetime

我有一个奇怪的问题,我试图理解。 在我的控制器中有2个我想比较的DateTime对象。

您可以在我的控制器中看到调试器的屏幕截图。我创建了一个日期时间并从模型中获取另一个日期时间。 在此步骤中,您可以在调试器中看到date1与date2的不同之处为2秒 debuger - step 1

在下一步,我从date2删除2秒,并将其与date1

进行比较

debugger 2

你解释我为什么是假的?在调试器中,我看到它们都是一样的。

enter image description here

解决方案:正如评论中所说的那样,想法是检查毫秒,我完全忘了它!

3 个答案:

答案 0 :(得分:4)

正如您在the reference source中所看到的,两个DateTime对象的比较是通过它们各自的刻度完成的,这是它们的内部表示。

比较两个DateTime值有点像比较两个浮点值:差异可能很小,以至于您可能无法获得所需的值。也许您需要检查他们是否在同一个日期,或者是否属于另一个的特定范围。

答案 1 :(得分:0)

您可以使用DateTime.Compare查看更早/更晚的时间。也像人们已经提到过差异可能在例如毫秒

如何使用DateTime.Compare: https://msdn.microsoft.com/en-us/library/system.datetime.compare(v=vs.110).aspx

答案 2 :(得分:0)

比较日期时间的方法是通过比较它们的Tick属性来完成的:

bool r = date1.Ticks == date2.Ticks;

试试这个。