Hallo,
auch wenn man für die Ausgabe eines Datums Monatsnamen verwenden kann, so ist doch der interne Parser bei der Umwandlung von Strings alleine auf Zahlenwerte ausgelegt - lediglich die Reihenfolge von DMY wird berücksichtigt.
Delphi-Quellcode:
function StrToDateTime(s: string; fs: TFormatSettings): TDateTime;
var
i, m: Integer;
begin
i := Pos('mmm', fs.ShortDateFormat);
if i > 0 then
begin
m := {StrUtils.}AnsiIndexText(Copy(s, i, 3), ShortMonthNames);
s := {StrUtils.}StuffString(s, i, 3, Format('%.2d', [m + Low(ShortMonthNames)]));
end;
Result := SysUtils.StrToDateTime(s, fs);
end;
procedure TDemoForm.ButtonClick(Sender: TObject);
var
fs: TFormatSettings;
s: string;
begin
s := '02-Juni-2008 01:59:00';
GetLocaleFormatSettings(GetUserDefaultLCID, fs);
fs.DateSeparator := '-';
fs.ShortDateFormat := 'dd/mmm/yyyy';
ShowMessage(DateTimeToStr(StrToDateTime(s, fs), fs));
end;
Ist das Datumstrennzeichen ein Blank, dann ist vielleicht dieser Thread interessant:
Datum-String in Datetime wandeln.
Grüße vom marabu