@TUX_der_Pinguin
Hier eine kleine Funktion aus einem meiner Programme:
Delphi-Quellcode:
const
FS_Ger_DateSeparator = '.';
FS_Ger_TimeSeparator = ':';
function FS: TFormatSettings;
begin
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, Result);
Result.DateSeparator := FS_Ger_DateSeparator;
Result.TimeSeparator := FS_Ger_TimeSeparator;
Result.ShortDateFormat := 'dd/MM/yyyy';
Result.ShortTimeFormat := 'hh:mm';
Result.LongTimeFormat := 'hh:mm:ss';
end;
Das habe ich so geregelt, weil ich das Datum und Uhrzeit unabhängig einer Landeseinstellung immer im gleichen Format speichern und lesen wollte.
Zuerst zu den Schrägstrichen "/" in TFormatSettings. Die muss man als Platzhalter verstehen. Zufällig passt es zu der us-amerikanischen Schreibweise. Wenn du da etwas anders rein schreibst, zB. Rauten:
Result.ShortDateFormat := 'dd#MM#yyyy'
deaktivierst du sozusagen die Platzhalterfunktion. In dem Fall wird das Datum mit Rauten angezeigt. Ist es ein Schrägstrich, wird das Zeichen aus
Result.DateSeparator
genommen. Diese Besonderheit darf man nicht vergessen . Also entweder man läßt die Schrägstriche in Ruhe, dann nimmt das System den DateSeparator, oder du manipulierst den String in ShortDateFormat direkt (was ich nicht empfehlen würde).
Machen wir ein Beispiel:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
FS2: TFormatSettings;
begin
FS2 := FS;
ShowMessage(FormatDateTime(FS2.ShortDateFormat, Now, FS2));
end;
Änder nun diese Zeile:
Delphi-Quellcode:
const
FS_Ger_DateSeparator = '~';
Soviel zum Thema Punkt und Strich. Der Strich ist nur ein Platzhalter für das eigentliche Zeichen. Wo es die Umrechnung von TT zu dd oder YYYY zu JJJJ gibt weiß ich nicht. Vermutlich gibt es auch einen Record mit den Informationen.