Sample code for 30+ languages & platforms
Delphi ActiveX

How to Parse a TimeStamp (such as 2016-11-11T14:32:17.0908971Z)

Timestamps are frequently used in REST API responses. This example demonstrates how to parse a timestamp string to get at the date/time components in the local timezone or in the GMT/UTC timezone.

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
strTimestamp: WideString;
dateTime: TCkDateTime;
bLocalTimezone: Integer;
dt: TDtObj;

begin
// Let's say we have a timestamp string such as 2016-11-11T14:32:17.0908971Z
strTimestamp := '2016-11-11T14:32:17.0908971Z';

dateTime := TCkDateTime.Create(Self);
dateTime.SetFromTimestamp(strTimestamp);

// Get a DtObj in the local timezone.
bLocalTimezone := 1;
dt := TDtObj.Create(Self);
dateTime.ToDtObj(bLocalTimezone,dt.ControlInterface);

// Get the individual date/time components
Memo1.Lines.Add('-- Local Time --');
Memo1.Lines.Add('Year: ' + IntToStr(dt.Year));
Memo1.Lines.Add('Month: ' + IntToStr(dt.Month));
Memo1.Lines.Add('Day: ' + IntToStr(dt.Day));
Memo1.Lines.Add('Hour: ' + IntToStr(dt.Hour));
Memo1.Lines.Add('Minutes: ' + IntToStr(dt.Minute));
Memo1.Lines.Add('Seconds: ' + IntToStr(dt.Second));

// Get a DtObj in the GMT/UTC timezone.
bLocalTimezone := 0;
dateTime.ToDtObj(bLocalTimezone,dt.ControlInterface);

// Get the individual date/time components
Memo1.Lines.Add('-- UTC Time --');
Memo1.Lines.Add('Year: ' + IntToStr(dt.Year));
Memo1.Lines.Add('Month: ' + IntToStr(dt.Month));
Memo1.Lines.Add('Day: ' + IntToStr(dt.Day));
Memo1.Lines.Add('Hour: ' + IntToStr(dt.Hour));
Memo1.Lines.Add('Minutes: ' + IntToStr(dt.Minute));
Memo1.Lines.Add('Seconds: ' + IntToStr(dt.Second));
end;