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

标签 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);
   }
}

最佳答案

DateTime的分辨率低至刻度,即使默认情况下,它们在大多数区域性中仅打印到秒。

如果打印dt1.ToString("o")dt2相同,则即使它们等于秒,它们也会在亚秒数量上变化。这就解释了为什么您当前的代码可以打印“不同”但随后两行仍然打印相同的值。

关于c# - C#无法正确比较两个日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24742482/

相关文章:

mysql - 如何比较两个表并显示每个差异

c++ - 比较两个 C 风格字符串的正确函数是什么?

c# - 冗余设置为 null/在被调用函数中设置为 null

Django 在数据库保存时转换日期时间

c# - 从 EST/EDT 转换为 GMT

javascript - 在 Moment.js 中格式化 longDateFormat

c++ - vector 到 vector 字符串比较搜索的问题

c# - 类型转换操作中的不同行为?

c# - 使用 SharedMemory MMF 实现快速 .NET 无锁进程间

c# - 来自基本类型的操作泛型