Die StrToDateTime-Routinen helfen hier nicht, weil diese nur DateSeparator, Timeseparator und Reihenfolge der Datums-/Zeitbestandteile berücksichtigen, aber keine zusätzlichen Zeichen, so wie sie mit FormatDateTime eingebaut werden können. In der Unit DateUtils gibt es ScanDateTime, das man mit demselben FormatString aufrufen kann, der bei FormatDateTime verwendet wurde. Es ist quasi die Umkehrung von FormatDateTime.
Code: Alles auswählen
uses
DateUtils;
var
dt: TDateTime;
begin
dt := ScanDateTime('yyyy-mm-dd"T"hh:nn:ss"Z', '2008-11-09T17:36:59Z');
Beachte, dass die ISO-Trennzeichen T und Z "gequotet" sein müssen. Allerdings scheint die Routine einen Bug zu haben, weil das abschließende Anführungszeichen für das "Z" einen Fehler verursacht.
[EDIT] Der Buf in ScanDateTime wurde inzwischen in fpc-trunk behoben.