![]() |
Datumsunterschied zwischen Delphi und javascript
Hallo,
ich muss hier eine Zeit in Milisekunden seit 1.1.1970 in ein lesbares Format umwandelen. Unter javascript benutze ich hier im Prinzip folgendes Codefragment d = new Date(1415515893786); console.log(d.toLocaleString()); Ich erhalte als Ergebnis 9.11.2014, 07:51:33 Unter Delphi habe ich dieses Konstrukt
Delphi-Quellcode:
Hier erhalte ich als Ergebnis 9.11.2014, 06:51:33
function SecondSince2Datetime(seconds:Int64):TDatetime;
var refdatum:TDateTime; const Refmonat=1; RefTag=1; Refjahr=1970; MinutesPerDay = 60 * 24; SecondsPerMinute = 60; SecondsPerHour = 3600; SecondsPerDay = MinutesPerDay * 60; Milisecondsperday = SecondsPerDay*1000; begin refdatum:=encodedate(Refjahr,Refmonat,RefTag); result:= refdatum + (seconds / Milisecondsperday); end; procedure TTest.Button5Click(Sender: TObject); begin caption :=DateTimeToStr(S2econdSinceDatetime(1415515893786 )); end; Ich denke es hat was mit Sommer / Winterzeit zu tun. Was ist denn das richtige Ergebnis ? Was muss ich machen damit der Browser und das Delphiprogramm beide die gleiche Uhrzeit anzeigen. Das Delphiprogramm habe mit Delphi 6 gemacht wenn es von Interesse ist. Edit: Ich habe gerade mal ein C# Programm gemacht, das zeigt auch 06:51:33 an |
AW: Datumsunterschied zwischen Delphi und javascript
Zitat:
Vielmehr ist es wohl die Zeitzone -> mit folgendem Befehl erhältst du auch in JS 06:51
Code:
d.toLocaleString('de-DE', {timeZone: 'UTC'})
|
AW: Datumsunterschied zwischen Delphi und javascript
Schau Dir mal Soap.XSBuiltIns an, dort gibt es bereits Klassen und Wrapperfunktionen dafür.
|
AW: Datumsunterschied zwischen Delphi und javascript
Delphi-Quellcode:
ergibt bei mir
procedure justTimeStampThings();
const ms: Int64 = 1415515893786; var timeStamp: TTimeStamp; dateTime: TDateTime; begin timeStamp := MSecsToTimeStamp(ms); dateTime := TimeStampToDateTime(timeStamp); WriteLn( DateTimeToStr(dateTime) ); end;
Code:
Immerhin stimmt die Uhrzeit :thumb:
08.11.0045 06:51:33
|
AW: Datumsunterschied zwischen Delphi und javascript
Ich hatte noch weiter nachgeforscht.
Anscheinend interpretiert Delphi in dieser Form die ms als UTC. Javascript beachtet noch die lokale Zeit die auf dem jeweiligen Rechner eingestellt ist. Also in De UTC+1 |
AW: Datumsunterschied zwischen Delphi und javascript
Zitat:
|
AW: Datumsunterschied zwischen Delphi und javascript
Moment mal, warum sagen wir nicht einfach
Delphi-Quellcode:
?
UnixToDateTime(Round(1415515893786 / 1000))
|
AW: Datumsunterschied zwischen Delphi und javascript
Zitat:
Javas
Delphi-Quellcode:
gibt den Wert passend zur System-Zeitzone aus (dort erfolgt also nochmal eine Umrechnung).
Date.ToLocaleString
Bei einer Uhrzeit Angabe ist es eben wichtig den Kontext (Zeitzone) zu kennen, sonst habe ich einfach nur einen Wert. Was ist 5kg - 3kg? 2 2 was? Hasenköttel, Eier? 2kg ;) Die Doku sagt das im Übrigen auch: ![]() |
AW: Datumsunterschied zwischen Delphi und javascript
Zitat:
Delphi-Quellcode:
, sonst ergibt sich 6:51:34
trunc(1415515893786 / 1000)
|
AW: Datumsunterschied zwischen Delphi und javascript
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz