如何比较两个日期时间

Jon*_*nas 5 .net datetime compare equals compareto

我想知道如何使用DateTime方法比较.NET中的两个DateTime对象Compare,CompareTo或者Equals不比较刻度.

我只需要毫秒或秒的容差级别.

如何才能做到这一点?

Ani*_*Ani 9

您可以DateTime从另一个中减去一个,以产生TimeSpan表示它们之间的时差的数据.然后,您可以测试此跨度的绝对值是否在您所需的公差范围内.

bool dtsWithinASecOfEachOther = d1.Subtract(d2).Duration() <= TimeSpan.FromSeconds(1);
Run Code Online (Sandbox Code Playgroud)

TimeSpan.Duration()如果您知道第一个DateTime不能代表比其他时间更早的时间点,即可以省略调用d1 >= d2.

要回答有关比较方法的查询,请 DateTime.Compare(d1, d2)生成与以下相同的结果d1.CompareTo(d2):

  • 如果它们代表相同的时间点(d1.Equals(d2),d1 == d2)则为0 .请注意,DateTime的分辨率为1 tick = 100纳秒= 10 ^ -7秒.
  • 如果d1在d2(d1 > d2)之后按时间顺序排列,则值大于0
  • 如果d1在d2(d1 < d2)之前按时间顺序排列,则小于0