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);