AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Verändertes StrToDateTime Verhalten in Delphi 11.3
Thema durchsuchen
Ansicht
Themen-Optionen

Verändertes StrToDateTime Verhalten in Delphi 11.3

Ein Thema von OlliWW · begonnen am 2. Mär 2023 · letzter Beitrag vom 7. Mär 2023
Antwort Antwort
Seite 1 von 2  1 2      
OlliWW

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

Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 2. Mär 2023, 22: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
Redeemer

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

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 3. Mär 2023, 00:25
Was kommt denn beim letzten davon raus?

Wenn auch da keine Sekunden rauskommen, würde ich vermuten, dass die Methode die Sekunden ignoriert, wenn sie keine valide Angabe vorfindet. Delphi-Referenz durchsuchenTryStrToDateTime sagt klar: Sekunden sind optional. Aber das nicht erst seit Delphi 11.3.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 3. Mär 2023, 00:52
Implementiert ist es zumindest so, dass es bei einem Fehler in den Sekunden auf ShortTime Format zurück fällt. Daher die 00 Sekunden.

Aber ich hätte bei einem ungültigen String auch ein False erwartet und sehe das aktuelle Verhalten durchaus als diskutabel an. Mach doch mal einen QP Report auf, dann werden wir ja sehen on das Absicht ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 3. Mär 2023, 07:17
Du schreibst, dass das ein verändertes Verhalten ist, stellst aber nicht gegenüber, zu welcher Version ind wie dort das Verhalten ist.
Grundsätzlich ist das Verhalten diskussionswürdig, aber ohne zu wissen, wie es vorher war, fehlt eine wichtige Grundlage. Natürlich kann das jeder selbst ausprobieren, aber ... nee.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 3. Mär 2023, 10:40
[Post deleted]

add: neee nee, ich bin mir ganz sicher, dass ich vorhin noch richtig war
$2B or not $2B

Geändert von himitsu ( 3. Mär 2023 um 14:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 3. Mär 2023, 10:47
Es gibt Zertifikate
Falscher Thread?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
OlliWW

Registriert seit: 31. Aug 2011
159 Beiträge
 
#7

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 6. Mär 2023, 19:57
Ich habe nun mal in aller Ausfürhlichkeit ein paar Tests gemacht mit TryStrToDateTime in Delphi 10.4., 11.1. und 11.3.

Das Verhalten zwischen den ersten beiden und der aktuellsten Version ist definitiv anders.

Hier sieht man links den Input. Rot bedeutet das result ist "false", grün bedeutet das result ist true und der Wert entspricht dem erwarteten Wert. Gelb bedeutet es kommt zwar true zurück, aber das Verhalten ist nicht das erwartete.

Ich habe ein entsprechendes Ticket bei Embarcadero aufgemacht, ich bin mir ziemlich sicher, dass dies ein Fehler ist.
Miniaturansicht angehängter Grafiken
screenshot-2023-03-06-195633.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 6. Mär 2023, 22:32
Ich habe ein entsprechendes Ticket bei Embarcadero aufgemacht, ich bin mir ziemlich sicher, dass dies ein Fehler ist.
Ein Support-Ticket oder einen QP-Eintrag? Bei letzterem hätten wir hier gern die Nummer.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 6. Mär 2023, 23:12
Das ist der neue Report:
https://quality.embarcadero.com/browse/RSP-40711

Vorher wurden mit Delphi 11 diverse andere Einträge als erledigt geschlossen. Kommentar von Dmitry Arefiev:
Zitat:
Before v11 the StrToDateTime was less strict checking format string and input data. In v11 it offers greater flexibility (more formats are supported), and more strict checking.
Sebastian Jänicke
AppCentral

Geändert von jaenicke ( 6. Mär 2023 um 23:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Verändertes StrToDateTime Verhalten in Delphi 11.3

  Alt 7. Mär 2023, 08:49
@OlliWW:
Danke für die Übersicht
Peter
  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 11:11 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