Irgendwie macht Windows das ja auch.
Windows setzt diese Strings aus den Format-Strings anhand der aktuellen Sprache zusammen. Also ähnlich wie FormatDateTime, aber anstatt der Ziffern werden die entsprechenden Buchstaben (in Deutsch T, M und J) für Tag, Monat und Jahr eingesetzt. Die sprachabhängigen Buchstaben liegen als Resourcestrings in den verschiedenen mui-Dateien der intl.cpl. Welche davon genommen wird hängt von der aktuellen Sprache ab.
Es handelt sich also tatsächlich um ein reines Übersetzungsproblem, da du die Übersetzungen für die Kürzel brauchst.
Wenn diese Kürzel vorliegen, könnte eine Implementierung etwa so aussehen:
Delphi-Quellcode:
function GetDateHint(const D, M, Y: Char): string;
begin
Result := FormatDateTime('c', EncodeDate(3333,11,22)).Replace('3', Y).Replace('1', M).Replace('2', D);
end;