In .NET befindet sich die CultureInfo
Klasse im System.Globalization
Namespace. Es hat zwei ähnliche Eigenschaften, die beide Werte vom CultureInfo
Typ zurückgeben: CurrentCulture
und CurrentUICulture
.
Was ist der Unterschied zwischen ihnen?
Welches sollte ich wann und warum verwenden?
.net
globalization
cultureinfo
splattne
quelle
quelle
CurrentUICulture
auf einem englischsprachigen Computer immer en-US ist, unabhängig davonCurrentCulture
, welche zur Lokalisierung der regionalen Einstellungen eingestellt werden kann.CurrentCulture
"en-GB", aberCurrentUICulture
"en-US".Antworten:
CurrentCulture
ist die .NET-Darstellung des Standardbenutzergebietsschemas des Systems. Dies steuert die Standardformatierung von Nummer und Datum und dergleichen.CurrentUICulture
bezieht sich auf die Standardsprache der Benutzeroberfläche, eine Einstellung, die in Windows 2000 eingeführt wurde. Dies betrifft hauptsächlich den Teil zur Lokalisierung / Übersetzung der Benutzeroberfläche Ihrer App.Unabhängig davon, für welche regionalen Optionen das System konfiguriert ist, werden die "aktuellen" Werte in Ihrer .NET-App angezeigt.
Oft sind beide gleich. Aber auf meinem System wären sie anders: Ich bevorzuge meine Zahlen und Daten im deutschen Format, also
CurrentCulture
wäre das Deutsch, aber ich bevorzuge auch alle meine Bewerbungen auf Englisch, alsoCurrentUICulture
wäre das Englisch.Es gibt einen schönen Artikel zum Thema: Alles sortieren: Warum wir sowohl CurrentCulture als auch CurrentUICulture haben
quelle
D
) ziemlich viel "Sprache" enthalten kann: Gibten-US
"Freitag, 6. April 2018" zurück, währendru-RU
"6 April 2018" zurückgegeben wird.Dies ist ein einfacher Trick, mit dem ich mich daran erinnere, welchen ich verwenden soll:
quelle
Ein guter Weg, um zusätzlich zu den netten Erklärungen der Mitbenutzer einen Unterschied zu machen, und ein wichtiger Aspekt bei der Entwicklung von Webanwendungen ist der folgende:
CurrentCulture
repräsentiert das Setup des Webservers. Wenn Ihre ASP.NET-Webanwendung beispielsweise in Deutschland gehostet wird, ist der Wert vonCutlureInfo.CurrentCulture
höchstwahrscheinlichde-DE
. Daher würde die Standardformatierung.ToString()
fürIFormattable
Typen die deutschen Standardformatierungen verwenden oder diejenigen, die auf dem Server-Betriebssystem als Standard eingerichtet wurden.CurrentUICulture
kann vom Benutzeragenten erfasst werden und kann die Benutzeroberflächenkultur des Clients darstellen, der eine Verbindung zur Website herstellt. Zum Beispiel, wenn Sie diese Website aus Russland laden, den lokalen Einstellungen festgelegt sind russische Sprache zu verwenden, und Ihr User - Agent sendet Ihre locale - Einstellungen an den Server (Opera und IE tun dies, automatisch nicht sicher für Chrome und Firefox), dasCurrenUICulture
würde darstellenru-RU
. Dies führt dazu, dass Ressourcen wie lokalisierte Zeichenfolgen, die über ResourceManager abgerufen werden, oder Lokalisierungsausdrücke in ASP.NET-Aspx / ASCX-Dateien auf Russisch sind (sofern Übersetzungen verfügbar sind).quelle
Unterschiede:
CurrentCulture
dient zur Formatierung von Datumsangaben und Währungen im ZusammenhangCurrentUICulture
mit Sprache / Übersetzungen. Es wird verwendetResourceManager
, um Ressourcen nach Kultur zu suchen.CurrentCulture
Klasse ist inSystem.Globalization
whileCurrentUICulture
kommt vonSystem.Threading
.CurrentCulture
wird über verschiedene Anforderungen in der Sitzung hinwegCurrentUICulture
beibehalten und muss bei jeder Anforderung festgelegt werden.Ähnlichkeit:
Sie sind beide
System.Globalization.CultureInfo
Instanzen.quelle
Es ist erwähnenswert, dass das
CurrentUICulture
nicht länderspezifische Gebietsschemas wie 'en' (neutrale Kulturen)CurrentCulture
unterstützt, während NUR länderspezifische Gebietsschemas wie 'en-GB' unterstützt werden. Die EinstellungCurrentCulture
zu einer neutralen Kultur wird eineArgumentException
.Ich gehe davon aus, dass dies daran liegt, dass Formate wie Datum und Währung stärker mit dem Land selbst verknüpft sind, die angezeigte Sprache jedoch häufig zwischen den Ländern austauschbar ist.
quelle