![]() |
StrToDate defekt?
Hallo nur eine kurze Frage, ist in Delphi 11 die DateToStr Funktion defekt?
Also ich gebe der Funktion '2.3' rein und erwarte als Rückgabe 02.03.2021, sowie es auch in der Doku steht: { StrToDate converts the given string to a date value. The string must consist of two or three numbers, separated by the character defined by the DateSeparator global variable. The order for month, day, and year is determined by the ShortDateFormat global variable--possible combinations are m/d/y, d/m/y, and y/m/d. If the string contains only two numbers, it is interpreted as a date (m/d or d/m) in the current year. Year values between 0 and 99 are assumed to be in the current century. If the given string does not contain a valid date, an EConvertError exception is raised. } Ich setze ShortDateFormat := 'd/m/y'; DateSeparator := '.'; aber Delphi beachtet es einfach nicht. Wo steckt der Fehler, in 10.4 ging es noch? Die Funktion gibt immer nur den default Wert zurück.
Code:
AStr := '2.3'; AFormatSettings := TFormatSettings.Create(); AFormatSettings.ShortDateFormat := 'd.m.y'; AFormatSettings.ShortDateFormat := 'dd.mm.yy'; AFormatSettings.ShortDateFormat := 'd.M.y'; AFormatSettings.ShortDateFormat := 'd/m/y'; AFormatSettings.ShortDateFormat := 'dd/mm/y'; AFormatSettings.DateSeparator := '.'; Result := StrToDateDef(AStr, 0, AFormatSettings); |
AW: StrToDate defekt?
Du musst für t (Tag) ein d (Day) eintragen.
Edit: OK, hast du mittlerweile gemacht. |
AW: StrToDate defekt?
Also ich nutze 'd.m.y'
und laut Doku steht da: "If the string contains only two numbers, it is interpreted as a date (m/d or d/m) in the current year. " aber genau das macht die Funktion nicht, wenn ich nur 2 Zahlen mit Punkt getrennt eingeben, funktioniert es nicht. |
AW: StrToDate defekt?
Das ist offenbar bei der Neufassung von ScanDate übersehen worden. (Bedauerlich, dass es dafür keine Testcases gibt)
Kannst du dafür bitte einen QP-Report aufmachen mit Verweis auf die Dokumentation und dass es sich um eine Regression zu 10.4.2 handelt? |
AW: StrToDate defekt?
ich wollte erstmal wissen, ob es ein Fehler ist oder nur ein Anwenderproblem ;)
|
AW: StrToDate defekt?
Verwendet ScanDate/ScanTime überhaupt die FormatStrings?
Mir war so, als wenn da nur einiges Weniges "hartcodiert" war/ist, aber die FormatStings nur zum codieren, aber nicht zum decodieren verwendet würden. Ich bin mir sicher hier im Forum gab es auch schon mehrere Funktionen, welche diese Strings verwenden, um damit zu decodieren. |
AW: StrToDate defekt?
Zitat:
|
AW: StrToDate defekt?
falls jemand was beitragen möchte:
![]() aber echt ärgerlich bei so einer Basisfunktionalität. Auf sowas muss man sich verlassen können. Wenn die an der Basis Änderungen machen, sollten die auch mal den Code testen... |
AW: StrToDate defekt?
Na da bin ich ja froh, dass ich dieses Jahr zu nix gekommen bin.
Wollte mir vor Langem auch mal wieder soeine Funktion zusammensuchen, die das StringToDateTime "richtig" mit den FormatSettings behandelt. |
AW: StrToDate defekt?
Zitat:
|
AW: StrToDate defekt?
Zitat:
|
AW: StrToDate defekt?
Vielleicht sollte man das hier etwas pushen:
![]() |
AW: StrToDate defekt?
Zitat:
ja bitte, alle mal pushen. Ich hatte ja irgendwann mal vorgeschlagen UnitTests zu sammeln und vielleicht in der Community zu verwalten, leider mit 0- Response. Verwaltet von Emba wäre das noch viel besser. Es scheinen nur wenige an UnitTests Interesse zu haben, die Fehler in einer neuen IDE aufzeigen können. Stattdessen bastelt sich jeder seine Tests zu Hause selber zusammen, sehr schade. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz