Einzelnen Beitrag anzeigen

OlliWW

Registriert seit: 31. Aug 2011
153 Beiträge
 
#1

Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 2. Mär 2023, 21:25
Delphi-Version: 11 Alexandria
Hallo,

Ich teste nun das neue Delphi 11.3. und ich konnte ein verändertes Verhalten bei der Konvertierung von Strings in DateTime bemerken.

Folgende Strings konvertiere ich mit TryStrToDateTime und vergleiche damit den resultierenden DateTime-Wert und die Antwort der Funktion (True / False):

01.01.2023 25:34:45
Liefert False, was korrekt ist da "25" keine gültige Stunde ist

01.01.2023 12:61:45
Liefert False, was korrekt ist, da "61" keine gültige Minute ist

01.01.2023 12:34:99
Liefert "True", obwohl das keine gültige Sekunde ist. Beim resultierenden DateTime, werden die Sekunden einfach "genullt": 01.01.2023 12:34:00 => Fehler?

01.01.2023 12:34:55
Liefert "True", meiner Meinung nach ist der String auch korrekt, also alles wie es erwartet wird.

01.01.2023 12:34:12:1234567890
Liefert "True", allerdings sind die Sekunden genullt: 01.01.2023 12:34:00 => Fehler?

01.01.2023 12:34:12,1234567890
Liefert "True", allerdings sind die Sekunden genullt: 01.01.2023 12:34:00 => Fehler?

01.01.2023 12:34:12:12
Liefert "True", allerdings sind die Sekunden genullt: 01.01.2023 12:34:00 => Fehler?

01.01.2023 12:34:12,12
Liefert "True", ist meiner Meinung nach auch valide.

Hat jemand ein ähnliches Verhalten bereits gesehen und gibt es dafür einen Workarround oder eine Erklärung? Dass "falsche" Millisekunden Auswirkungen auf die Sekunden haben finde ich schon etwas bedenklich, ebenso wie dass "falsch" Stunden und Minuten nicht interpretiert werden (korrektes verhalten) aber "falsch" Sekunden einfach so durch gehen und "0" liefern.

Viele Grüße
  Mit Zitat antworten Zitat