C#无法正确比较两个日期时间

fer*_*ndo 1 c# datetime compare

我是C#的新手,我正在尝试编写一个简单的控制台应用程序.我有两个日期时间,但我无法得到消息Same,它继续打印Different.

我还在控制台中打印两个日期时间以了解它们是否不同,但即使系统时间相同,它也不满足条件.

static void Main(string[] args)
{
    while (true)
    {
        Thread.Sleep(1000);
        DateTime dt1 = DateTime.Now;
        DateTime dt2 = DateTime.Parse("06:30:00 AM");

        if (TimeSpan.Compare(dt1.TimeOfDay, dt2.TimeOfDay) == 0)
        {
           Console.WriteLine("Same");
        }
        else
        {
           Console.WriteLine("Different");
        }

        Console.WriteLine(dt1);
        Console.WriteLine(dt2);
   }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

DateTime分辨率低至刻度,即使默认情况下它们仅在大多数文化中打印到秒.

如果你打印dt1.ToString("o")相同的dt2,你会看到,即使它们等于第二个,它们也可能在亚秒数量上变化.这就解释了为什么您当前的代码可以打印"不同"但仍然为接下来的两行打印相同的值.