@nahpets: Vielen Dank fürs Suchen, aber die Links kannte ich auch schon.
Der vielversprechendeste Link war der
C++ DateTime in Delphi TDateTime umwandeln, worauf meine aktuelle Quick&Dirty Lösung basiert.
Und zwar habe ich bemerkt, dass, wenn ich direkt Delphi TDateTime mit Hilfe von der
WinAPI SystemTimeToFileTime zu "TFileTime" umwandle, dann genau 1600 Jahre zu wenig sind. Darum addiere ich einfach vorher brutal 1600 Jahre dazu und fertisch.
Naja, zugegeben ist nicht grad sauber und ich kann mir auch nicht erklären warum das so ist, aber vielleicht weiß jemand von Forum warum.
Anbei die Lösung, vielleicht kanns wer ja mal brauchen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
SystemTime: TSystemTime;
TimeTicks: UInt64;
ADateTime: TDateTime;
begin
ADateTime := StrToDateTime('27.09.2009 22:50:27');
DateTimeToSystemTime(ADateTime, SystemTime);
SystemTime.wYear := SystemTime.wYear +1600;
SystemTimeToFileTime(SystemTime, TFileTime(TimeTicks));
showMessage(IntToStr(Int64(TimeTicks)));
end;
Zur Probe, ob die berechneten Ticks richtig sind, kann man die Werte
hier überprüfen.
lg,
jus