Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Get Email Date/Time
Demonstrates getting the email "Date" header field in a CkDateTime object.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Email,
Chilkat.DtObj,
Chilkat.CkDateTime;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
email: TEmail;
dtTime: TCkDateTime;
bLocalTime: Boolean;
unixTime: Integer;
dtObj: TDtObj;
begin
success := False;
email := TEmail.Create;
// Load a .eml file into the email object.
success := email.LoadEml('/home/users/chilkat/eml/myEml.eml');
dtTime := TCkDateTime.Create;
dtTime.SetFromRfc822(email.EmailDateStr);
// Once we have the CkDateTime object, we can get the date/time in many different formats:
// Get as a RFC822 GMT string:
bLocalTime := False;
WriteLn(dtTime.GetAsRfc822(bLocalTime));
// Get as an RFC822 string in the local timezone.
// (remember, the daylight savings that existed at the given time in the past is applied)
bLocalTime := True;
WriteLn(dtTime.GetAsRfc822(bLocalTime));
// Get as a 32-bit UNIX time (local or GMT..)
// The Unix time is number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
unixTime := dtTime.GetAsUnixTime(bLocalTime);
WriteLn('Unix time: ' + unixTime);
// One can also get the as a "DtObj" object for accessing the individual
// parts of the date/time, such as month, day, year, hour, minute, etc.
// The DtObj can be obtained in the GMT or local timezone:
dtObj := TDtObj.Create;
dtTime.ToDtObj(bLocalTime,dtObj);
if (dtTime.LastMethodSuccess = False) then
begin
WriteLn('This should never really happen!');
Exit;
end;
WriteLn(dtObj.Day + '-' + dtObj.Month + '-' + dtObj.Year + ' ' + dtObj.Hour + ':' + dtObj.Minute + ':' + dtObj.Second);
email.Free;
dtTime.Free;
dtObj.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.