Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ISO 8601 Datum vergleichen (https://www.delphipraxis.net/203776-iso-8601-datum-vergleichen.html)

DieDolly 22. Mär 2020 22:51

AW: ISO 8601 Datum vergleichen
 
Zitat:

Vielleicht wäre jetzt ein guter Zeitpunkt deinen bisherigen Code zu zeigen?
Es gibt keinen? Deswegen frage ich doch hier.

Also kann man das alles als String lassen und so vergleichen? Wie vergleicht man dann ein Datum 1 und ein Datum 2?

Der Hintergrund ist ganz einfach: ich speichere aktuell verschiedene Werte als Timestamp. Und irgendwann demnächst ist der halt... zu Ende und würde überlaufen.
Deswegen möchte ich das schon frühzeitig alles abändern.
Ich vergleiche sehr oft Werte wie "Datum 1 > Datum 2" und rechne das vorher in Integer/Sekunden.

Oder sollte man intern nur mit TDateTime arbeiten und vergleichen und nur zum Speichern das lange Format nehmen?
Man lädt das Format ein, konvertiert es einmalig in TDateTime um und das wars.

Luckie 23. Mär 2020 01:50

AW: ISO 8601 Datum vergleichen
 
Wenn Datum 1 und Datum 2 als ISO 8601 vorliegen, kannst du sie genauso, wie Strings, vergleichen. Wo ist jetzt dein Problem oder Frage?

p80286 23. Mär 2020 07:09

AW: ISO 8601 Datum vergleichen
 
Das ISO-Datum in seiner vollen Ausprägung hat ja auch noch einen Zeit-Anteil incl. Zeitzone das ist dann etwas unübersichtlicher. TDatetime oder ein Timestamp sind immer vollständig, liegt es daran? Welche Daten liegen denn vor?

Gruß
K-H

Sherlock 23. Mär 2020 07:52

AW: ISO 8601 Datum vergleichen
 
Zitat:

Zitat von DieDolly (Beitrag 1460336)

Der Hintergrund ist ganz einfach: ich speichere aktuell verschiedene Werte als Timestamp. Und irgendwann demnächst ist der halt... zu Ende und würde überlaufen.

Nein. Jedenfalls nicht zu unseren Lebzeiten, es sei denn, Du hast ein eigenes Timestamp erfunden und nutzt darin SmallInt um Sekunden seit 01.01.2020 darzustellen :lol:. Seit man bis 2038 gedacht hat, haben Unix-Timestamps int64 als Datentyp... das reicht.

Sherlock

DieDolly 23. Mär 2020 12:28

AW: ISO 8601 Datum vergleichen
 
Heißt das die 2038 Grenze gibt es nicht mehr?

himitsu 23. Mär 2020 12:52

AW: ISO 8601 Datum vergleichen
 
Doch, aber nur wenn die Variable in 31 Bit vorliegt.
Und wenn doch, dann ist immernoch lange Zeit. (der Klimawandel ertränkt uns eh vorher)

Integer springt 2038 ins Negative und mit einem Unsigned-Integer hast sogar noch bis 2106 deine Ruhe.
* ab 2038 Probleme mit Integer-Vergleichen
* ab 2106 Datenverlust, bzw. Sprung in die Vergangenheit (1970), weil zuwenige Bit

DieDolly 23. Mär 2020 13:31

AW: ISO 8601 Datum vergleichen
 
Ich stelle alles auf 64bit Integer um das sollte erstmal reichen. Oder Cardinal? :lol:

p80286 23. Mär 2020 14:29

AW: ISO 8601 Datum vergleichen
 
Wenn Du keine negativen Timestamps benötigen solltest ist unsignedInt wohl Mittel der Wahl.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr.
Seite 2 von 2     12   

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