AGB  ·  Datenschutz  ·  Impressum  







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

StrToDate defekt?

Ein Thema von woodie · begonnen am 4. Nov 2021 · letzter Beitrag vom 4. Nov 2021
Antwort Antwort
Seite 1 von 2  1 2      
woodie

Registriert seit: 30. Sep 2020
6 Beiträge
 
#1

StrToDate defekt?

  Alt 4. Nov 2021, 12:29
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);

Geändert von woodie ( 4. Nov 2021 um 12:39 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
 
#2

AW: StrToDate defekt?

  Alt 4. Nov 2021, 12:43
Du musst für t (Tag) ein d (Day) eintragen.

Edit: OK, hast du mittlerweile gemacht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
woodie

Registriert seit: 30. Sep 2020
6 Beiträge
 
#3

AW: StrToDate defekt?

  Alt 4. Nov 2021, 12:50
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.
  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
 
#4

AW: StrToDate defekt?

  Alt 4. Nov 2021, 12:52
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?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
woodie

Registriert seit: 30. Sep 2020
6 Beiträge
 
#5

AW: StrToDate defekt?

  Alt 4. Nov 2021, 13:00
ich wollte erstmal wissen, ob es ein Fehler ist oder nur ein Anwenderproblem
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: StrToDate defekt?

  Alt 4. Nov 2021, 15:14
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.
$2B or not $2B
  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
 
#7

AW: StrToDate defekt?

  Alt 4. Nov 2021, 15:28
Verwendet ScanDate/ScanTime überhaupt die FormatStrings?
Seit Delphi 11.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
woodie

Registriert seit: 30. Sep 2020
6 Beiträge
 
#8

AW: StrToDate defekt?

  Alt 4. Nov 2021, 16:02
falls jemand was beitragen möchte:

https://quality.embarcadero.com/browse/RSP-36115

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...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: StrToDate defekt?

  Alt 4. Nov 2021, 16:05
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.
$2B or not $2B
  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
 
#10

AW: StrToDate defekt?

  Alt 4. Nov 2021, 17:00
Auf sowas muss man sich verlassen können. Wenn die an der Basis Änderungen machen, sollten die auch mal den Code testen...
Es hat schon ein paar Beschwerden in diesem Zusammenhang gegeben. Oft war eine undokumentierte Funktionalität nicht mehr gegeben und dann kann man drüber streiten. Aber hier ist es ja dokumentiert. Es geht halt nichts über eine gute Testabdeckung.
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 16:42 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