Kulturen sind in drei Gruppen unterteilt: die invariante Kultur, die neutralen Kulturen und die spezifischen Kulturen. Die Kultur en
ist eine neutrale Kultur, während die Kultur en-US
eine spezifische Kultur ist.
GetCultureInfo
geben Ihnen die gewünschte Kultur, wenn Sie also eine neutrale Kultur beantragen, erhalten Sie auch eine neutrale Kultur wie en
.
CreateSpecificCulture
eine spezifische Kultur aus einer neutralen Kultur schaffen, damit, wenn Sie CreateSpecificCulture("en")
rufen die CultureInfo
zurückgekehrt ist für die en-US
Kultur. Ich bin mir nicht sicher, wie neutrale Kulturen bestimmten Kulturen zugeordnet werden, aber es muss eine Tabelle in der BCL oder in Windows vorhanden sein, die diese Zuordnungen enthält, und entscheidet, dass die en-US
und nicht en-GB
zurückgegeben wird. Wenn Sie eine spezifische Kultur als Argument für CreateSpecificCulture
angeben, erhalten Sie diese spezifische CultureInfo
genauso wie GetCultureInfo
.
Aber es ist ein etwas überraschendes Merkmal der spezifischen Kultur geschaffen:
Wenn die Kulturbezeichner der spezifischen Kultur nach dieser Methode entspricht den Kulturbezeichner der aktuellen Windows-Kultur zurückgegeben, erstellt diese Methode einen Culture Objekt, das die Windows-Kulturüberschreibungen verwendet. Zu den Überschreibungen gehören Benutzereinstellungen für die Eigenschaften des DateTimeFormatInfo-Objekts, das von der DateTimeFormat-Eigenschaft zurückgegeben wird, und des NumberFormatInfo-Objekts, das von der NumberFormat-Eigenschaft zurückgegeben wird.
Was dies bedeutet ist, dass, wenn die spezifische Kultur von CreateSpecificCulture
entspricht die Kultur durch den Benutzer in Region und Sprache Systemsteuerung in Windows dann alle Benutzeranpassung zu dieser Kultur ausgewählt zurückgegeben werden, in der zurück CultureInfo
enthält. Z.B. Der Benutzer kann das lange Datumsmuster oder das in Zahlen verwendete Dezimaltrennzeichen ändern. Eine andere Möglichkeit, darüber nachzudenken, ist, dass wenn CreateSpecificCulture
eine Kultur zurückgibt, die dem Namen CurrentCulture
entspricht, wird diese Kultur einschließlich aller Benutzeranpassungen tatsächlich zurückgegeben.
So weit ich sagen kann GetCultureInfo
hat diese Eigenschaft nicht und wird immer eine unmodifizierte CultureInfo
zurückgeben.
Und um zu überprüfen, ob eine Kultur gültig ist, würde ich GetCultureInfo
verwenden.