Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Parse a Microsoft JSON Date (MS AJAX Date)

See more JSON Examples

Demonstrates how to parse a Microsoft JSON Date, also known as an MSAJAX date.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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.DtObj,
  Chilkat.JsonObject,
  Chilkat.CkDateTime;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  json: TJsonObject;
  dt: TCkDateTime;
  bLocal: Boolean;
  dtObj: TDtObj;

begin
  success := False;

  //  Parse Microsoft JSON Dates (AJAX Dates)
  json := TJsonObject.Create;

  success := json.Load('{ "AchievementDate":"/Date(1540229468330-0500)/"}');

  dt := TCkDateTime.Create;
  success := json.DateOf('AchievementDate',dt);
  if (success <> True) then
    begin
      WriteLn('Unable to parse a date/time.');
      Exit;
    end;

  //  Show the date in different formats:
  bLocal := True;
  WriteLn('RFC822: ' + dt.GetAsRfc822(bLocal));
  WriteLn('Timestamp: ' + dt.GetAsTimestamp(bLocal));
  WriteLn('YYYY-MM-DD: ' + dt.GetAsIso8601('YYYY-MM-DD',bLocal));

  //  Get integer values for year, month, day, etc.
  dtObj := TDtObj.Create;
  dt.ToDtObj(bLocal,dtObj);

  WriteLn('year: ' + dtObj.Year);
  WriteLn('month: ' + dtObj.Month);
  WriteLn('day: ' + dtObj.Day);
  WriteLn('hour: ' + dtObj.Hour);
  WriteLn('minute: ' + dtObj.Minute);
  WriteLn('seconds: ' + dtObj.Second);

  //  Sample output:
  //  RFC822: Mon, 22 Oct 2018 17:31:08 -0500
  //  Timestamp: 2018-10-22T17:31:08-05:00
  //  YYYY-MM-DD: 2018-10-22
  //  year: 2018
  //  month: 10
  //  day: 22
  //  hour: 17
  //  minute: 31
  //  seconds: 8


  json.Free;
  dt.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.