Probleme mit der länderspezifischen Datumsanzeige
-
Hallo,
folgendes Problem habe ich gerade.
Die Werte für die Zeitanzeige können von der Ländereinstellungen modifiziert
werden. Mit %c soll die kurze Ländereinstellung verwendet werden,
laut %#c die lange Ländereinstellung.Dies funktioniert jedoch nicht, trotz deutscher Ländereinstellung
unter Einstellung//Systemsteuerung//Ländereinstellungen//Reg.karte"Datum"
bringt das Beispiel eine amerikanische Ausschrift.
Liegt es an WINDOWS 2000?Beispiel:
COleDateTime dtCurrent; dtCurrent = COleDateTime::GetCurrentTime(); AfxMessageBox(dtCurrent.Format("Heute ist %#c"));
-
Hallo,
die Format-Funktion der COleDateTime-Klasse setzt auf den C-Runtime-Libraries auf, und diese verwenden die für ein C-Programm als Standard festgelegten Einstellungen, welche aber nicht die für Deutschland sind. Es gibt eine Funktion, mit der man diese Einstellungen (eingeteilt in Kategorien) für die Laufzeit eines Programms festlegen kann:
char *setlocale( int category, const char *locale );
Deswegen funktioniert COleDateTime's Format-Funktion dann "deutsch", wenn man die LC_TIME-Kategorie auf "Deutsch" umbiegt:
setlocale( LC_TIME, "deu" ); COleDateTime dtCurrent = COleDateTime::GetCurrentTime(); AfxMessageBox(dtCurrent.Format("Heute ist %#c"));MfG
-
Vielen Dank,
diese Funktion funktioniert jetzt ausgezeichnet.