AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ISO 8601 Datum vergleichen

Ein Thema von DieDolly · begonnen am 22. Mär 2020 · letzter Beitrag vom 23. Mär 2020
Antwort Antwort
Seite 1 von 2  1 2      
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 22:41
Wie vergleicht man am besten ein iso8601 Datum?
TDateTimes konvertiere ich vorher immer in Timestamps und habe dann was zum Rechnen.

Geändert von DieDolly (23. Mär 2020 um 14:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 22:43
Warum nicht, wenn es funktioniert?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 22:44
Das ist ein Int64. Ich wüsste ohnehin nicht wie man es sonst vergleichen sollte. Ich dachte nur es gibt eine vernünftigere Methode dafür.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 22:48
Wenn die Werte als String vorliegen, warum dann nicht direkt die Strings vergleichen? Das Format ist ja extra so aufgebaut, daß es dies ermöglicht. Das ist auf jeden Fall schneller als eine vorherige Konvertierung.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 22:49
Es liegt als Int64 vor. Der Vergleich soll keinen allgemeinen Unterschied festellen, sondern welcher der beiden Werte älter oder neuer ist.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 23:20
Wenn es als Int64 vorliegt, wie ist dann die binäre Darstellung des Datums? ISO 8601 beschreibt ein reines Textformat.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 23:22
Von binären Darstellungen habe ich keine Ahnung. Ich verstehe nicht einmal die Frage.
Wenn man das nicht als Int64 darstellen darf, wie soll man dann prüfen welcher davon neuer ist?
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.053 Beiträge
 
Delphi 2009 Professional
 
#8

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 23:38
Warum konvertierst du TDateTime in Timestamp? Man kann auch TDateTime vergleichen, die korrekte Art und Weise ist mit DateUtils.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#9

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 23:40
Direkte Vergleiche der gespeicherten Ausgangswerte ist zu 99.9999999% immer schneller, als eine vorherige Umrechnung, bei jedem einzelnen Wert/Vergleich.

Ausnahme bei Anzahl an Vergleiche, welche die Anzahl der Werte stark überschreite. (alles mit allem Vergleichen, Sortieren usw.)
Aus diesem Grund legen Datenbanken auch einen Index an, in dem die Daten in einem optimaleren Format vorliegen.

z.B. einen Wert in einer Liste suchen und überall erst umrechnen zu müssen ist natürlich langsamer, als wenn die Daten bereits in einem "optimalen" Format vorliegen, bzw, vorher umgewandelt wurden. (z.B. Integer bzw. Int64 anstatt vieler langer Strings ... ein orinaler Vergleich gegenüber dem Vergleich vieler kleiner Chars pro Wert)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#10

AW: ISO 8601 Datum vergleichen

  Alt 22. Mär 2020, 23:45
Von binären Darstellungen habe ich keine Ahnung. Ich verstehe nicht einmal die Frage.
Wenn man das nicht als Int64 darstellen darf, wie soll man dann prüfen welcher davon neuer ist?
Die Frage geht doch auf ISO 8601 und das ist ein Textformat für Datum und Uhrzeit. Mit Int64 hat das gar nichts zu tun. Wenn du also sagst, daß du ISO 8601 Daten als Int64 hast, dann ergibt diese Aussage erstmal keinen Sinn.

Weiterhin ist das ISO 8601 Format bewusst so aufgebaut, daß ein direkter Stringvergleich möglich ist.

Vielleicht wäre jetzt ein guter Zeitpunkt deinen bisherigen Code zu zeigen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:10 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