如何指定比较的时间精度

时间:2014-10-09 12:39:34

标签: c# time compare

我有两个正在返回的日期值,然后需要对这些值进行比较以确保文件的lastWriteDate自缓存以来尚未更新。

我遇到的问题是,lastWriteDate包含毫秒数,而clientDate则没有。因此,当进行比较时,如果lastWriteDate在同一秒内,它将始终更大。

if (!(Request.Headers["If-Modified-Since"] == null))
{
     DateTime clientDate = Convert.ToDateTime(Request.Headers["If-Modified-Since"]);
     DateTime lastWriteDate = System.IO.File.GetLastWriteTime(newImagePath);


     if (lastWriteDate <= clientDate)
     {
        //Code here not being reached
     }
 }

这些毫秒对于我进行的比较并不重要,那么在没有它们的情况下比较这些值的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

从另一个中减去一个日期。那么你最终得到一个TimeSpan对象,你可以简单地检查秒数并忽略毫秒。

答案 1 :(得分:1)

您可以用这种方式截断毫秒:

if (lastWriteDate.AddMilliseconds(-lastWriteDate.Millisecond) <= clientDate)
{
    // ....
}

您还可以创建TimeSpan并检查它是否低于最高值:

TimeSpan diff = clientDate - lastWriteDate;
if (diff < TimeSpan.FromSeconds(1))
{
    // ....
}