Hallo zusammen,
Vielleicht ist es einfach zu heiss. Aber ich stecke hier fest. Über eine Schnittstelle erhalte ich ein
XML in welchem unter anderem ein DATE und ein TIME Node enthalten ist. Date: 'yyyy-mm-dd' Time: 'hh-nn-ss-zzz'. Nun war ich so naiv und habe gemacht:
Delphi-Quellcode:
function TServiceModule.GetTimeStamp(aTimeStamp: String): TDateTime;
begin
var ts:= TFormatSettings.Create;
ts.DateSeparator:= '-';
ts.TimeSeparator:= '-';
ts.ShortDateFormat := 'yyyy-mm-dd';
ts.ShortTimeFormat := 'hh-nn-ss-zzz';
Result:= StrToDateTime(aTimeStamp, ts);
end;
Dann zum Test:
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
begin
var tm:= ServiceModule.GetTimeStamp('2024-07-30 16-31-56-563');
ShowMessageFmt('%s',[FormatDateTime('yyyy-mm-dd hh-nn-ss-zzz',tm)]);
end;
Die Message ist dann leider: 2024-07-30 16-31-56-000
Wie bringe ich die Milisekunden vom String in den Timestamp. Klar könnte ich den Time Value zerlegen und dann mit IncMiliseconds den DateTime erhöhen. Aber geht das einfacher?
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.