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