1
我有一些例外文件,我想在14天左右后删除。但是我怎样才能比较日期时间?比较日期时间
它看起来像这样,但它不起作用。
DateTime date = DateTime.Now;
DateTime newDate = date.Subtract(TimeSpan.FromDays(date.Day + 14));
DirectoryInfo exceptionsDirectory = new DirectoryInfo(pathToSave);
foreach (FileInfo actualFile in exceptionsDirectory.GetFiles())
{
if (actualFile.LastWriteTime.Subtract(TimeSpan.FromDays(date.Day + 14)) == newDay)
{
try
{
File.Delete(actualFile.FullName);
}
catch (Exception ex)
{
// do ..
}
}
}
与大多数'DateTime'相关解答,如果它使用'DateTime.UtcNow'和'actualFile.LastWriteTimeUtc'这将是更好的。在这种情况下,这个问题并不重要,因为这个问题说“14天左右”,但如果有人拿这个代码,并试图将它应用到比如一个小时的文件,他们应该使用Utc。 – 2014-10-30 03:18:26
@IanMercer,这并不总是好主意。在许多情况下,你必须依靠本地而不是UTC时间。 – rufanov 2014-10-30 04:14:26
我没有说“永远”,我说“最”。例如:运行在服务器上的几乎每个多用户应用程序(WWW,WCF,WebApi,...)都没有用于'DateTime.Now'。无论何时需要计算两次之间的差异,都需要使用Utc。等等。即使你确实需要在当地时间工作,你最好使用'DateTimeOffset'而不是'DateTime',因为它同时捕获Utc和当前偏移量。 – 2014-10-30 04:38:16