Autor Beitrag
Seven of Nine
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Mi 01.08.12 06:38 
Guten Morgen
mit welchem Code ermittelt man (sicher) die identische Zeit in [ms] welche die Java-Function "getcurrenttimemillis" ermittelt.
Diese ermittelt ja meines Wissens die Zeit Seit 1.1.1970, UTC, in Millisekunden

ich dachte mir mit
ausblenden Delphi-Quelltext
1:
TimeDifferenceMS := MilliSecondsBetween(now , EncodeDateTime(1970,1,1,0,0,0,0) );					


bin mir leider aber nicht sicher ob das stimmt.

lG Martin
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19321
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 01.08.12 07:23 
Das sieht schon richtig aus, ja. Die Doku sagt auch genau das:
docs.oracle.com/java...#currentTimeMillis()

Ansonsten bleibt nur ausprobieren wie exakt die beiden Werte in der Realität übereinstimmen.

Für diesen Beitrag haben gedankt: Seven of Nine
Seven of Nine Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Mi 01.08.12 08:43 
Hallo
Ich bin mir halt von der Logik her noch nichts sicher ob das wirklich passt.

denn sowohl das aktuelle "Now" sowie auch das "1970,1,1,0,0,0,0" müssen den entsprechen richtigen Offset zur UTC haben.
Dies berücksichtigt neben dem gleichbleibendem Delta wegen dem GMT-Versatz (bei uns +1h)
ja auch das Delta wegen Sommer/Winterzeit!
beim 1970 Datum ist das ja "fix", aber bei "Now" kann das sowohl Winter als auch Somemrzeit sein.

Verständich formuliert?

lG M
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mi 01.08.12 11:35 
DateTimeToUnix gibt die Sekunden seit Beginn der Unix-Epoche 1.1.1970 zurück. Ob die Funktion den genannten GMT-Offset berücksichtigt weiß ich nicht. Denke aber das der zurückgegebene Wert UTC entspricht.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var
  Epoch: int64;
begin
  Epoch := DateTimeToUnix(Now);
end;

Für diesen Beitrag haben gedankt: Seven of Nine
Seven of Nine Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 1

Win XP, Win Vista HomePro
Delphi 2009
BeitragVerfasst: Fr 03.08.12 05:46 
Getestet:
ausblenden Delphi-Quelltext
1:
TimeDifferenceMS := MilliSecondsBetween(now , EncodeDateTime(1970,1,1,0,0,0,0) );					
ist ein ausreichend genaues Pendant zu getcurrenttimemillis (Java)

Danke für eueren Support!
lG Martin