我有一个奇怪的问题,我试图理解。 在我的控制器中有2个我想比较的DateTime对象。
您可以在我的控制器中看到调试器的屏幕截图。我创建了一个日期时间并从模型中获取另一个日期时间。 在此步骤中,您可以在调试器中看到date1与date2的不同之处为2秒
在下一步,我从date2删除2秒,并将其与date1
进行比较 你解释我为什么是假的?在调试器中,我看到它们都是一样的。解决方案:正如评论中所说的那样,想法是检查毫秒,我完全忘了它!
答案 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;
试试这个。