AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Datumsunterschied zwischen Delphi und javascript
Thema durchsuchen
Ansicht
Themen-Optionen

Datumsunterschied zwischen Delphi und javascript

Ein Thema von v2afrank · begonnen am 9. Jul 2015 · letzter Beitrag vom 10. Jul 2015
Antwort Antwort
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#1

Datumsunterschied zwischen Delphi und javascript

  Alt 9. Jul 2015, 13:52
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:
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;
Hier erhalte ich als Ergebnis 9.11.2014, 06:51:33
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

Geändert von v2afrank ( 9. Jul 2015 um 14:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73
Online

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#2

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 9. Jul 2015, 15:48
Ich denke es hat was mit Sommer / Winterzeit zu tun.
Nein, denn an diesem Tag galt keine Sommerzeit, kann also bei diesem Beispiel nicht das Problem sein.

Vielmehr ist es wohl die Zeitzone -> mit folgendem Befehl erhältst du auch in JS 06:51

Code:
d.toLocaleString('de-DE', {timeZone: 'UTC'})
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 9. Jul 2015, 16:08
Schau Dir mal Soap.XSBuiltIns an, dort gibt es bereits Klassen und Wrapperfunktionen dafür.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 9. Jul 2015, 17:16
Delphi-Quellcode:
procedure justTimeStampThings();
const
   ms: Int64 = 1415515893786;
var
   timeStamp:   TTimeStamp;
   dateTime:   TDateTime;
begin
   timeStamp := MSecsToTimeStamp(ms);
   dateTime := TimeStampToDateTime(timeStamp);
   WriteLn( DateTimeToStr(dateTime) );
end;
ergibt bei mir
Code:
08.11.0045 06:51:33
Immerhin stimmt die Uhrzeit
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
573 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 10. Jul 2015, 06:48
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
  Mit Zitat antworten Zitat
Zoot

Registriert seit: 30. Jan 2006
Ort: Hessen
113 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 10. Jul 2015, 07:54
Code:
08.11.0045 06:51:33
Immerhin stimmt die Uhrzeit
45 Jahre seit 1970 ist ja auch nicht so verkehrt.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 10. Jul 2015, 09:55
Moment mal, warum sagen wir nicht einfach
UnixToDateTime(Round(1415515893786 / 1000)) ?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 10. Jul 2015, 10:15
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
Beide Systeme interpretieren den Wert richtig, allerdings auf Java-Seite machst du noch etwas, was du auf der Delphi-Seite nicht machst.

Javas Date.ToLocaleString gibt den Wert passend zur System-Zeitzone aus (dort erfolgt also nochmal eine Umrechnung).

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:
http://docs.oracle.com/javase/7/docs...util/Date.html
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (10. Jul 2015 um 10:28 Uhr)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#9

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 10. Jul 2015, 10:16
Moment mal, warum sagen wir nicht einfach
UnixToDateTime(Round(1415515893786 / 1000)) ?
Wenn schon dann trunc(1415515893786 / 1000) , sonst ergibt sich 6:51:34
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#10

AW: Datumsunterschied zwischen Delphi und javascript

  Alt 10. Jul 2015, 21:27
[...] auf Java-Seite [...]
Hä? Wo ist denn hier die Rede von Java?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz