Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Datum-String in Datetime wandeln

  Alt 22. Jul 2005, 11:45
Hallo Matz,

die Format-Strings der Unit SysUtils sind eher auf die Ausgabe gerichtet. Beim Parsen von Strings bist du abseits des unterstützten Normalfalls (nur Zahlen und Trennzeichen) auf deine eigene Findigkeit angewiesen.

Nicht elegant, aber funktioniert mit deinem Beispiel:

Delphi-Quellcode:
function StrToDateTimeEx(s: string): TDateTime;
var
  i: integer;
  fs: TFormatSettings;
  sl: TStringList;
begin
  sl := TStringList.Create;
  sl.Delimiter := ' ';
  sl.DelimitedText := s;
  if sl.Count = 4 then begin
    for i := 1 to 12 do
      if ShortMonthNames[i] = sl[1] then begin
        sl[1] := RightStr('0' + IntToStr(i), 2);
        Break;
      end;
    s := Format('%s.%s.%s %s', [sl[0], sl[1], sl[2], sl[3]]);
    sl.Free;
  end;
  GetLocaleFormatSettings(GetUserDefaultLCID, fs);
  with fs do begin
    fs.DateSeparator := '.';
    fs.ShortDateFormat := 'dd.mm.yyyy';
  end;
  Result := StrToDateTime(s, fs);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat