C# 比较日期时间
我有一些例外文件,我想在14天后删除。但是我如何比较日期和时间呢 它实际上看起来像这样,但它不起作用C# 比较日期时间,c#,.net,date,datetime,C#,.net,Date,Datetime,我有一些例外文件,我想在14天后删除。但是我如何比较日期和时间呢 它实际上看起来像这样,但它不起作用 DateTime date = DateTime.Now; DateTime newDate = date.Subtract(TimeSpan.FromDays(date.Day + 14)); DirectoryInfo exceptionsDirectory = new DirectoryInfo(pathToSave); foreach (FileInfo actualFile in e
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 expirydate = DateTime.Now.Subtract(TimeSpan.FromDays(14));
DirectoryInfo exceptionsDirectory = new DirectoryInfo(pathToSave);
foreach (FileInfo actualFile in exceptionsDirectory.GetFiles())
{
if (actualFile.LastWriteTime < expirydate)
{
try
{
File.Delete(actualFile.FullName);
}
catch (Exception ex)
{
// do ..
}
}
}
DateTime expirydate=DateTime.Now.Subtract(TimeSpan.FromDays(14));
DirectoryInfo例外目录=新目录信息(路径保存);
foreach(exceptionsDirectory.GetFiles()中的FileInfo实际文件)
{
if(实际文件.LastWriteTime
与大多数DateTime
相关答案一样,如果使用DateTime.UtcNow
和actualFile.LastWriteTimeUtc
,效果会更好。在这种情况下,这并不重要,因为问题是“14天左右”,但如果有人接受此代码并试图将其应用于(比如)一小时前的文件,他们应该使用Utc。@IanMercer,这并不总是一个好主意。在许多情况下,您必须依赖本地时间,而不是UTC时间。我没有说“总是”,而是说“大多数”。例如:几乎每个在服务器上运行的多用户应用程序(WWW、WCF、WebApi等等)都不使用DateTime。每当需要计算两次之间的差值时,都需要使用Utc。等等。甚至当您确实需要使用本地时间时,最好使用DateTimeOffset
而不是DateTime
,因为它同时捕获Utc和当前偏移量。