Verwenden der CurrentCulture-Eigenschaft

Aktualisiert: November 2007

Die CurrentCulture-Eigenschaft stellt aktuelle Kulturinformationen für einzelne Threads dar. Diese Informationen bestimmen die Standardformate für Datumsangaben, Uhrzeitangaben, Währungen und Zahlen, die Sortierreihenfolge für Text, Zeichenfolgenvergleiche sowie die Groß-/Kleinschreibung. Die Einstellung dieser Eigenschaft ist keine Spracheinstellung. Die Eigenschaft definiert ausschließlich Daten, die sich auf die Standardeinstellungen für eine geografische Region beziehen. Daher kann die Anwendung CurrentCulture nur auf eine bestimmte Kultur oder auf die InvariantCulture festlegen. Zum Festlegen der CurrentCulture kann die Anwendung die CurrentThread-Eigenschaft verwenden.

Hinweis:

Das Ändern der Kultur von CurrentThread erfordert ein SecurityPermission-Objekt, für das ControlThread festgelegt ist. Das Ändern von Threads erweist sich aufgrund des mit Threads verbundenen Sicherheitsstatus als gefährlich. Deshalb sollte diese Berechtigung ausschließlich für vertrauenswürdigen Code erteilt werden, und auch dies nur bei Bedarf. In teilweise vertrauenswürdigem Code kann die Kultur eines Threads nicht geändert werden.

Explizites Festlegen der CurrentCulture-Eigenschaft

Die Anwendung kann die CurrentCulture-Eigenschaft explizit festlegen. Im folgenden Codebeispiel wird die Eigenschaft auf die bestimmte Kultur "de-DE" für Deutsch (Deutschland) festgelegt.

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE")
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");

Zur Initialisierung der CurrentCulture-Eigenschaft muss die Anwendung eine bestimmte Kultur verwenden. Die Eigenschaft erwartet eine Kultur, die sowohl einer Sprache als auch einem Land bzw. einer Region zugeordnet ist, z. B. "en-US" für Englisch (USA). Da eine Sprache oft in mehreren Ländern oder Regionen gesprochen wird, sind die regionalen Angaben erforderlich, um die zu verwendenden Formatierungskonventionen zu bestimmen. Wenn die Anwendung z. B. die Kultur "en" für neutrales Englisch festlegt, gibt es keine eindeutige Einstellung für das Datums- bzw. Währungsformat. Das Datum könnte das amerikanische oder das britische Format haben. Die Währung könnte das neuseeländische oder das kanadische Format haben. Wenn die Anwendung versucht, die CurrentCulture-Eigenschaft mithilfe einer neutralen Kultur festzulegen, wird eine Ausnahme ausgelöst.

Wenn Sie nur Zugriff auf eine neutrale Kultur haben, kann die Anwendung ein CultureInfo-Objekt mithilfe der CreateSpecificCulture-Methode in dem Format erstellen, das CurrentCulture erwartet. Diese Methode ordnet einer neutralen Kultur die bestimmte Kultur zu, der sie standardmäßig zugeordnet ist, und erstellt dann ein CultureInfo-Objekt, das diese bestimmte Kultur darstellt. Im folgenden Codebeispiel wird die CreateSpecificCulture-Methode verwendet, um die neutrale Kultur "de" für Deutsch der bestimmten Kultur "de-DE" für Deutsch (Deutschland) zuzuordnen. Anschließend wird ein CultureInfo-Objekt für "de-DE" erstellt und zum Initialisieren des Werts der CurrentCulture-Eigenschaft verwendet.

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
Hinweis:

Diese Methode ist eine optionale Methode. Wenn die bereitgestellte Zuordnung für die Anwendung nicht geeignet ist, kann die Anwendung ihre eigene Zuordnung verwenden.

Explizites Festlegen der CurrentCulture-Eigenschaft in einer ASPX-Seite

Mit der CreateSpecificCulture-Methode kann die Anwendung auch die aktuelle Webbrowsersprache verwenden, um die CurrentCulture-Eigenschaft in einer ASPX-Seite zu initialisieren. Im folgenden Codebeispiel ruft die UserLanguages-Eigenschaft die aktuelle Webbrowsersprache als Zeichenfolge ab. Die CreateSpecificCulture-Methode wertet diese Zeichenfolge aus und gibt ein CultureInfo-Objekt in dem Format zurück, das zum Initialisieren des Werts der CurrentCulture-Eigenschaft verwendet werden kann.

' Sets the CurrentCulture property to the culture associated with the Web
' browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0])
// Sets the CurrentCulture property to the culture associated with the Web
// browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);

Weitere Informationen zum Verwenden und Abrufen von Ressourcen in ASP.NET-Anwendungen finden Sie unter Ressourcen in ASP.NET-Anwendungen.

Implizites Festlegen der CurrentCulture-Eigenschaft

Im Windows-Betriebssystem legt die GetUserDefaultLCID-Funktion die CurrentCulture-Eigenschaft fest. Der Benutzer kann diese Eigenschafteneinstellung ändern, indem er über die Regions- und Sprachoptionen in der Systemsteuerung das Gebietsschema selbst oder mit dem Gebietsschema verbundene Einstellungen wie z. B. Währungs-, Zahlen-, Datums- und Uhrzeitformate ändert.

Um sicherzustellen, dass die Anwendung die von .NET Framework bereitgestellten Standardformate für Währungs-, Datums- und Uhrzeitangaben einer bestimmten Kultur verwendet, müssen die Standardeinstellungen für das Gebietsschema von der Anwendung überschrieben werden. Die Anwendung sollte ein CultureInfo-Objekt mit einer Konstruktorüberladung erstellen, die einen useUserOverride-Parameter akzeptiert, und diesen Parameter auf false festlegen. Diese Vorgehensweise bewirkt, dass die Standardeinstellungen für das Betriebssystem des Benutzers durch die .NET Framework-Standardeinstellungen überschrieben werden. Bei der Formatierung von Währungen für Mitgliedsstaaten der Europäischen Union (EU), die der Eurozone angehören, sollte die Anwendung den useUserOverride-Parameter auf false festlegen, um sicherzustellen, dass das richtige Währungssymbol verwendet wird. Weitere Informationen finden Sie im untergeordneten Thema "Währungsformatierung für Euroländer" des Themas Formatieren von numerischen Daten für eine bestimmte Kultur.

Siehe auch

Konzepte

Formatieren von numerischen Daten für eine bestimmte Kultur

Ressourcen in ASP.NET-Anwendungen

Verwenden der CultureInfo-Klasse

Verwenden der CurrentUICulture-Eigenschaft

Verwenden der InvariantCulture-Eigenschaft