Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi UnixToDateTime mit hoher Präzision (https://www.delphipraxis.net/198937-unixtodatetime-mit-hoher-praezision.html)

Codehunter 12. Dez 2018 14:37

Delphi-Version: 10.2 Tokyo

UnixToDateTime mit hoher Präzision
 
Hallo!

Gibt es ein UnixToDateTime das mit Millisekunden ungehen kann? UnixToDateTime hat zwar einen Int64-Parameter, wohl aber nur um am 19.1.2038 nicht überzulaufen. Millisekunden kann UnixToDateTime nicht sondern rechnet mit Sekunden ab 1.1.1970. Ich könnt jetzt zwar hin und her rechnen mit Teilen durch 1000 und Rest und mir das Datum dann hinterher wieder zusammenbasteln. Schöner wärs doch aber, das fertig in einer Funktion zu haben. Und meistens gibts sowas auch schon fertig beim Delphi, nur hats mir wieder keiner gesagt ;-)

Grüße
Cody

Der schöne Günther 12. Dez 2018 15:23

AW: UnixToDateTime mit hoher Präzision
 
Unix-Zeit hat per Definition keine Millisekunden.

Zitat:

Unix has no tradition of directly representing non-integer Unix time numbers as binary fractions. Instead, times with sub-second precision are represented using composite data types that consist of two integers, the first being a time_t (the integral part of the Unix time), and the second being the fractional part of the time number in millionths (in struct timeval) or billionths (in struct timespec). These structures provide a decimal-based fixed-point data format, which is useful for some applications, and trivial to convert for others.
Quelle: https://en.wikipedia.org/wiki/Unix_t...ing_the_number

Codehunter 12. Dez 2018 15:31

AW: UnixToDateTime mit hoher Präzision
 
Jau, genau das selbe hab ich auch gesagt :D Aber der Input von der Schnittstelle ist nun mal ein UnixTimestamp * 1000 + MSecs, warum auch immer. Ich habs bis auf weiteres erstmal mit besagter Restrechnung und RecodeMilliSecond gefixt. Aber schön isses so nicht.

Der schöne Günther 12. Dez 2018 16:05

AW: UnixToDateTime mit hoher Präzision
 
Wenn das für dich nicht schön ist schaust du dir besser nicht den Code an den ich grade auf dem Bildschirm habe 😎

Codehunter 12. Dez 2018 16:34

AW: UnixToDateTime mit hoher Präzision
 
Das ist bei mir die Konsequenz aus solchen Erfahrungen: In Altcode findet man oft Workarounds für Probleme älterer Delphi-Versionen. In aktuellen Delphis reicht manchmal eine Zeile wo man früher eine ganze Unit hatte. Je schlanker man den Anwendungscode bekommt, umso mehr Zeit spart man in Zukunft.

Frickler 12. Dez 2018 16:57

AW: UnixToDateTime mit hoher Präzision
 
Zitat:

Zitat von Codehunter (Beitrag 1420687)
Das ist bei mir die Konsequenz aus solchen Erfahrungen: In Altcode findet man oft Workarounds für Probleme älterer Delphi-Versionen. In aktuellen Delphis reicht manchmal eine Zeile wo man früher eine ganze Unit hatte. Je schlanker man den Anwendungscode bekommt, umso mehr Zeit spart man in Zukunft.

Oh ja. Gilt aber nur für die Kernfunktionalität. Alles drumrum kann schon in der nächsten Version anders funktionieren oder gar weg sein. Datenbankanbindung, Reporteditor, ... und nicht immer riecht man das so wie etwa bei CLX oder Delphi.net.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 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