Ich will kein Datum formatieren sondern die Formatierung anzeigen.
So sollte es sein...
Zitat:
Bitte geben sie das Datum im Format TT.MM.JJJJ ein!
und so ist es im Moment
Zitat:
Bitte geben sie das Datum im Format dd/MM/yyyy ein!
Dann solltest du vorher besser einmal den Aufbau dieser Formatstrings lernen.
Das was im String als Trennzeichen steht ist nicht unbedingt das Angezeigte,
denn
/
bedeutet hierbei nunmal, dass dort der jeweilige DateSeparator eingefügt werden soll.
ShowMessage(ReplaceStr(FmtSet.LongDateFormat, '/', FmtSet.DateSeparator)); // dd.MM.yyyy
Natürlich könnte man in diesem DateFormat-String auch direkt das Datumszeichen setzen, aber das macht Spaß, wenn man ein englisches Format schreibt und dann den DateSeparator falsch setzt, der das wieder überschreibt.
Aber das Lokalisierte TT.MM.JJJJ bekommst du da niemals raus, außer du übersetzt das auch noch. (Y>J, D>T usw.),
und viel Spaß mit M für Month oder Minute, je nach dem ob davor ein Datums- oder Zeitformatzeichen steht. (bei zusammengesetzten Datum&Zeitstrings)
Dieser Formatstring ist grundsätzlich immer englisch und gibt nur die Reihenfolge/Position/Größe der Felder an.
PS: Es gibt auch noch den Bug in einigen vorinstallierten Windowsen.
Im Windows gibt es mehrere Stellen, wo das Format gespeichert ist und da vergisst gern jemand alle Stellen anzupassen.
Windows zeigt das Eine in den Einstellungsdialogen an, aber Delphi liest dann das Andere aus. (da z.B. mal kurz nach Englisch umstellen, speichern und wieder zurück auf Deutsch)