Eg. var TM: string; DT: tdatetime;
TM: = '2017-08-21t09: 11: 21z'; DT: =?
Procedure setisotodatetime ( Strdt : String );
VaR
// Delphi settings save vars
Shortdf , Shorttf : String ;
TS , DS : Char ;
// Conversion vars
Dd , TT , Ddtt : Tdatetime ;
Begin
// Example datetime test string in ISO format
Strdt : = '2017-07-06t01: 53: 23z' ;
// Save Delphi settings
DS : = Dateseparator ;
TS : = Timeseparator ;
Shortdf : = Shortdateformat ;
Shorttf : = Shorttimeformat ;
// Set Delphi settings for string to date/time
Dateseparator : = '-' ;
Shortdateformat : = 'Yyyy-mm-dd' ;
Timeseparator : = ':' ;
Shorttimeformat : = 'Hh: mm: ss' ;
// Convert test string to datetime
Try
Dd : = Strtodate ( Copy ( Strdt , 1 , Pos ( 'T' , Strdt )- 1 ) );
TT : = Strtotime ( Copy ( Strdt , Pos ( 'T' , Strdt ) + 1 , 8 ) );
Ddtt : = Trunc ( Dd ) + Frac ( TT );
Except
On Econverterror Do
Showmessage ( 'Error in converting :' + Strdt );
End ;
// Restore Delphi settings
Dateseparator : = DS ;
Shortdateformat : = Shortdf ;
Timeseparator : = TS ;
Shorttimeformat : = Shorttf ;
// Display test string
Showmessage ( Formatdatetime ( 'Mm/DD/YYYY hh: mm: ss' , Ddtt ) );
End ;
Http://qc.embarcadero.com/wc/qcmain.aspx? D = 9547