我是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);
}
}
最佳答案
DateTime
的分辨率低至刻度,即使默认情况下,它们在大多数区域性中仅打印到秒。
如果打印dt1.ToString("o")
和dt2
相同,则即使它们等于秒,它们也会在亚秒数量上变化。这就解释了为什么您当前的代码可以打印“不同”但随后两行仍然打印相同的值。
关于c# - C#无法正确比较两个日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24742482/