AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Ungenauigkeiten bei DateTime-Umwandlungen
Thema durchsuchen
Ansicht
Themen-Optionen

Ungenauigkeiten bei DateTime-Umwandlungen

Ein Thema von Codehunter · begonnen am 17. Jul 2019 · letzter Beitrag vom 17. Jul 2019
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Ungenauigkeiten bei DateTime-Umwandlungen

  Alt 17. Jul 2019, 10:57
Hallo!

Ich poste das mal im Cross-Plattform-Bord im Sinne von "Auf der einen Seite Delphi, auf der anderen Unix". Ich habe das Problem, dass ich bei der Konvertierung von TDateTime-Werten Ungenauigkeiten habe. Beispielsweise ich lokal einen Zeitwert "10.05.2019 00:00:00" als TDateTime vorliegen. Interessieren tut auch nur das Datum, nicht die Uhrzeit. Ich konvertiere das mit DateTimeToUnix() in einen Unix-Zeitstempel und sende ihn an einen REST-Service. Dort kommt das aber als "09.05.2019 23:59:59" an. So schaukeln sich (Milli)sekunden zu 24 Stunden hoch, weil nur das Datum von Bedeutung ist.

Irgendwie sträubt sich bei mir aber auch alles dagegen, einfach statisch ein paar Sekunden draufzuschlagen.

Wie könnte ich das Problem lösen?

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Ungenauigkeiten bei DateTime-Umwandlungen

  Alt 17. Jul 2019, 11:18
Was kommt denn bei dir konkret heraus als Unix-Zeitstempel? Ist es 1557439200 ? Dann hast du alles richtig gemacht und der Fehler liegt nicht bei dir 😎

PS: UTC-Offset bedacht?


Delphi-Quellcode:
uses
   System.SysUtils,
   System.DateUtils;

const
   inputIsUTC = False;
var
   input: TDateTime;
   unixTimestamp: Int64;
begin
   input := EncodeDateTime(2019, 05, 10, 0, 0, 0, 0);
   unixTimestamp := DateTimeToUnix(input, inputIsUTC);

   WriteLn(unixTimestamp);
   ReadLn;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Ungenauigkeiten bei DateTime-Umwandlungen

  Alt 17. Jul 2019, 11:26
Was kommt denn bei dir konkret heraus als Unix-Zeitstempel? Ist es 1557439200 ? Dann hast du alles richtig gemacht und der Fehler liegt nicht bei dir 😎
Jepp, du hast 100% recht. Ich habe inzwischen Rückmeldung vom Entwickler des REST-Service. Es ist "nur" ein Darstellungsproblem in deren Webinterface. Also clientseitig beim Betrachter (vmtl. JavaScript). Insofern Frage erledigt.

Manchmal zweifelt man hat eher an seinen eigenen Quellen (oder wahlweise denen von Emba) als an denen der anderen.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  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 09:53 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