Das war aber auch schon immer falsch und hätte so oder so geändert werden sollen, auch wenn es vielleicht mal funktioniert hat.
Genau!
Die neue Implementierung kann jetzt halt auch Monatsnamen bzw. -abkürzungen erkennen. Früher waren nur Zahlen erlaubt.
Im Gegensatz zu dem recht einfachen GetDateOrder aus Delphi 7
Delphi-Quellcode:
function GetDateOrder(
const DateFormat:
string): TDateOrder;
var
I: Integer;
begin
Result := doMDY;
I := 1;
while I <= Length(DateFormat)
do
begin
case Chr(Ord(DateFormat[I])
and $
DF)
of
'
E': Result := doYMD;
'
Y': Result := doYMD;
'
M': Result := doMDY;
'
D': Result := doDMY;
else
Inc(I);
Continue;
end;
Exit;
end;
Result := doMDY;
end;
ist das aktuelle
GetDateSequence deutlich komplexer und achtet eben auch auf den Slash '/' als Datumstrenner.
Delphi-Quellcode:
case PrevChar of
'Y', 'y': Part := dpYear;
'M', 'm': Part := dpMonth;
'D', 'd': Part := dpDay;
'/': Part := dpSep;
'G', 'g': Part := dpEraName;
'E', 'e': Part := dpYearCurEra;
' ', #0: Part := dpNone;