如何比较dd / mm / yyyy格式的两个日期?

Bro*_*wJr 4 delphi date delphi-10.3-rio

我有两个文件,想要比较您的编译日期以供将来更新。

假设新文件的日期为20/09/2019,旧文件的日期为19/09/2019。如何以相同格式(dd / mm / yyyy)比较这两个日期?

var
 UpDate, OldDate: string;
begin
  UpDate := '20/09/2019';
  OldDate := DateToStr(FileDateToDateTime(FileAge(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'test.exe'))) // 19/09/2019

  if UpDate > OldDate then
  begin
    // Do something
  end;
end;
Run Code Online (Sandbox Code Playgroud)

Ame*_*hel 6

除了操纵字符串,您还可以TDateTime通过调用直接处理值DateUtils.CompareDate()

var  OldDate, UpDate : TDateTime;
begin
  OldDate := EncodeDate(2019, 9, 20);
  UpDate := FileDateToDateTime(FileAge(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName)) + 'test.exe'));
  if CompareDate(OldDate, UpDate) = LessThanValue  Then
  begin
    // Do something
  end;
end;
Run Code Online (Sandbox Code Playgroud)

  • 无论出于何种原因,结果实际上都是“ TValueRelationship”,但是有效结果是相同的。链接到官方[文档](http://docwiki.embarcadero.com/Libraries/en/System.DateUtils.CompareDate)将揭示此类详细信息。 (3认同)
  • 请注意,不推荐使用“FileDateToDateTime(FileAge(...))”,请使用输出“TDateTime”的“FileAge()”的重载版本:“if FileAge(FileName, UpDate) then ...” (2认同)