Freigeben über


Verwenden der CurrentCulture-Eigenschaft

Die CultureInfo.CurrentCulture-Eigenschaft ist eine threadspezifische Einstellung zum Festlegen des Standardformats für Datumsangaben, Uhrzeitangaben, Währungen und Zahlen, der Sortierreihenfolge für Text, der Zeichenfolgenvergleiche und der Groß-/Kleinschreibung. Die CurrentCulture-Eigenschaft ist keine Spracheinstellung. Sie enthält nur Daten, die sich auf die Standardeinstellungen für eine geografische Region beziehen. Daher kann die CurrentCulture-Eigenschaft nur auf eine bestimmte Kultur oder die InvariantCulture festgelegt werden. Sie können die Thread.CurrentThread-Eigenschaft verwenden, um CurrentCulture festzulegen. Weitere Informationen finden Sie in den Beispielen weiter unten in diesem Thema.

Hinweis

Um die Kultur von Thread.CurrentThread zu ändern, ist eine SecurityPermission mit gesetztem SecurityPermissionFlag,ControlThread erforderlich. 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

Sie können die CurrentCulture-Eigenschaft explizit im Code festlegen. Das folgende Codebeispiel legt die CurrentCulture-Eigenschaft auf die bestimmte Kultur "de-DE" für Deutsch (Deutschland) fest.

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

Sie müssen eine spezifische Kultur zur Initialisierung der CurrentUICulture-Eigenschaft verwenden. Die CurrentCulture-Eigenschaft benötigt eine Kultur, die sowohl mit einer Sprache als auch mit einer Region verknüpft 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 Sie beispielsweise die Kultur "en" für neutrales Englisch festlegen, gibt es keine eindeutige Einstellung für das Datums- bzw. Währungsformat. Das Datum könnte in dem in den USA oder in dem für Großbritannien üblichen Format angezeigt werden. Die Währung könnte das neuseeländische oder das kanadische Format haben. Aufgrund dieser Mehrdeutigkeiten ist es erforderlich, eine bestimmte Kultur (wie "en-US", "en-GB" oder "en-CA") festzulegen. Wenn Sie versuchen, die CurrentCulture-Eigenschaft mithilfe einer neutralen Kultur festzulegen, wird eine Ausnahme ausgelöst.

Wenn Sie nur Zugriff auf eine neutrale Kultur haben, können Sie ein CultureInfo-Objekt mithilfe der CultureInfo.CreateSpecificCulture-Methode in dem Format erstellen, das die CurrentCulture-Eigenschaft benötigt. Diese Methode ordnet einer neutralen Kultur die standardmäßige bestimmte Kultur zu, mit der sie verknüpft ist, und erstellt dann ein CultureInfo-Objekt, das diese bestimmte Kultur repräsentiert. Im folgenden Codebeispiel wird die CultureInfo.CreateSpecificCulture-Methode verwendet, um die bestimmte Kultur "de-DE" der neutralen Kultur "de" 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 verwendete Verknüpfung für die Anwendung nicht geeignet ist, können Sie sie durch eine eigene Verknüpfung ersetzen.

Explizites Festlegen der CurrentCulture-Eigenschaft in einer ASPX-Seite

Mit der CultureInfo.CreateSpecificCulture-Methode können Sie auch die aktuelle Webbrowsersprache verwenden, um die CurrentCulture-Eigenschaft in einer ASPX-Seite zu initialisieren.

Im folgenden Codebeispiel gibt die Request.UserLanguages-Eigenschaft die aktuelle Webbrowsersprache als Zeichenfolge zurück. Die CultureInfo.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

Die CurrentCulture-Eigenschaft wird mithilfe der GetUserDefaultLCID-Funktion im Windows-Betriebssystem festgelegt. Der Benutzer kann diese Eigenschafteneinstellung ändern, indem er in der Systemsteuerung im Dialogfeld Ländereinstellungen das Gebietsschema ändert oder indem er 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, können Sie die Standardwerte für das Gebietsschema im Code der Anwendung überschreiben. Erstellen Sie ein CultureInfo-Objekt mithilfe einer seiner Konstruktorüberladungen, das einen useUserOverride-Parameter akzeptiert, und legen Sie diesen Parameter auf false fest. Dies führt dazu, dass die Standardeinstellungen im Benutzersystem durch die .NET Framework-Standardeinstellungen außer Kraft gesetzt werden. Bei der Formatierung von Währungen für Mitgliedsstaaten der Europäischen Union (EU), die der Eurozone angehören, empfiehlt es sich, den useUserOverride-Parameter auf false festzulegen, 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

Referenz

CultureInfo.CurrentCulture Property

Konzepte

Verwenden der CurrentUICulture-Eigenschaft
Verwenden der InvariantCulture-Eigenschaft

Weitere Ressourcen

Codierung und Lokalisierung