Einzelnen Beitrag anzeigen

taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#1

StrToDateTime mit Miliseconds?

  Alt 30. Jul 2024, 17:02
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.
  Mit Zitat antworten Zitat