Sample code for 30+ languages & platforms
Delphi ActiveX

Get Certificate Valid To/From Dates

Demonstrates how to get the certificate "valid from" and "valid to" dates.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
cert: TChilkatCert;
ckdt: TCkDateTime;
dt: TDtObj;

begin
success := 0;

cert := TChilkatCert.Create(Self);

success := cert.LoadFromFile('qa_data/certs/testCert.cer');
if (success = 0) then
  begin
    Memo1.Lines.Add(cert.LastErrorText);
    Exit;
  end;

// Get the certificate valid-from date/time
ckdt := TCkDateTime.Create(Self);
ckdt.SetFromRfc822(cert.ValidFromStr);

// Get the local timestamp string.
Memo1.Lines.Add('Valid from: ' + ckdt.GetAsTimestamp(1));
// Valid from: 2017-03-17T19:00:00-05:00

// Now get the date/time as another object where we can get the individual numeric date parts.
dt := TDtObj.Create(Self);
ckdt.ToDtObj(1,dt.ControlInterface);

Memo1.Lines.Add(IntToStr(dt.Day) + '/' + IntToStr(dt.Month) + '/' + IntToStr(dt.Year) + '  ' + IntToStr(dt.Hour)
     + ':' + IntToStr(dt.Minute));

// Get the certificate valid-to date/time
ckdt.SetFromRfc822(cert.ValidToStr);

Memo1.Lines.Add('Valid to: ' + ckdt.GetAsTimestamp(1));
// Valid to: 2020-03-18T18:59:59-05:00new DtObj dt;
ckdt.ToDtObj(1,dt.ControlInterface);

Memo1.Lines.Add(IntToStr(dt.Day) + '/' + IntToStr(dt.Month) + '/' + IntToStr(dt.Year) + '  ' + IntToStr(dt.Hour)
     + ':' + IntToStr(dt.Minute));
end;