@Uwe: Danke, das hilft tatsächlich ein bisschen weiter. Aber besonders bei DateTimeToStr ist mir das nach wie vor unklar.
Vielleicht sollte ich noch ergänzen, dass ich TFormatSettings selten mit .Create erzeuge. Das heißt, die Systemeinstellungen sollen mit DateTimeToStr(myDateTimeVar, myFormatSettings) ganz bewusst übersteuert werden. Das hat die Bewandnis, dass ich mich viel mit externen Programmen unterhalten muss, die hartcodierte Zeitformate verwenden.
Ein typischer Initialisierungsblock sieht bei mir so aus:
Delphi-Quellcode:
var
FS: TFormatSettings;
S: string;
begin
FS.ShortDateFormat := 'mm/dd/yyyy';
FS.LongDateFormat := FS.ShortDateFormat;
FS.ShortTimeFormat := 'hh:nn:ss';
FS.LongTimeFormat := FS.ShortTimeFormat;
FS.DateSeparator := '-';
FS.TimeSeparator := '-';
S := DateTimeToStr(Now, FS).Replace(' ', '-');
end;
Im Ergebnis kommt dann so etwas heraus:
Dieses LongxxxFormat := ShortxxxFormat ist genau das, was ich nur aus Unsicherheit heraus mache, weil ich nicht weiß unter welchen Voraussetzungen DateTimeToStr das eine oder das andere nimmt.