CultureInfo.CreateSpecificCulture(String) Method

Definition

Creates a CultureInfo that represents the specific culture that is associated with the specified name.

public:
 static System::Globalization::CultureInfo ^ CreateSpecificCulture(System::String ^ name);
public static System.Globalization.CultureInfo CreateSpecificCulture (string name);
static member CreateSpecificCulture : string -> System.Globalization.CultureInfo
Public Shared Function CreateSpecificCulture (name As String) As CultureInfo

Parameters

name
String

A predefined CultureInfo name or the name of an existing CultureInfo object. name is not case-sensitive.

Returns

A CultureInfo object that represents:

The invariant culture, if name is an empty string ("").

-or-

The specific culture associated with name, if name is a neutral culture.

-or-

The culture specified by name, if name is already a specific culture.

Exceptions

name is not a valid culture name.

-or-

The culture specified by name does not have a specific culture associated with it.

name is null.

Examples

The following example retrieves an array of CultureInfo objects that represent neutral cultures from the GetCultures method and sorts the array. When it iterates the elements in the array, it passes the name of each neutral culture to the CreateSpecificCulture method and displays the name of the specific culture returned by the method.

Note

The example uses the zh-CHS and zh-CHT culture names. However, applications that target Windows Vista and later should use zh-Hans instead of zh-CHS and zh-Hant instead of zh-CHT. zh-Hans and zh-Hant represent the current standard and should be used unless you have a reason for using the older names.

Note also that the results of the example may differ on an installation of Taiwanese Windows, where the input of a Chinese (Traditional) neutral culture (zh, zh-CHT, or zh-Hant) will return zh-TW.

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      // Display the header.
      Console.WriteLine("{0,-53}{1}", "CULTURE", "SPECIFIC CULTURE");

      // Get each neutral culture in the .NET Framework.
      CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.NeutralCultures);
      // Sort the returned array by name.
      Array.Sort<CultureInfo>(cultures, new NamePropertyComparer<CultureInfo>());

      // Determine the specific culture associated with each neutral culture.
      foreach (var culture in cultures)
      {
         Console.Write("{0,-12} {1,-40}", culture.Name, culture.EnglishName);
         try {
            Console.WriteLine("{0}", CultureInfo.CreateSpecificCulture(culture.Name).Name);
         }
         catch (ArgumentException) {
            Console.WriteLine("(no associated specific culture)");
         }
      }
   }
}

public class NamePropertyComparer<T> : IComparer<T>
{
   public int Compare(T x, T y)
   {
      if (x == null)
         if (y == null)
            return 0;
         else
            return -1;

      PropertyInfo pX = x.GetType().GetProperty("Name");
      PropertyInfo pY = y.GetType().GetProperty("Name");
      return String.Compare((string) pX.GetValue(x, null), (string) pY.GetValue(y, null));
   }
}
// The example displays the following output on a Windows system.  This output has been cropped for brevity.
//    CULTURE                                              SPECIFIC CULTURE
//                 Invariant Language (Invariant Country)
//    aa           Afar                                    aa-ET
//    af           Afrikaans                               af-ZA
//    agq          Aghem                                   agq-CM
//    ak           Akan                                    ak-GH
//    am           Amharic                                 am-ET
//    ar           Arabic                                  ar-SA
//    arn          Mapudungun                              arn-CL
//    as           Assamese                                as-IN
//    asa          Asu                                     asa-TZ
//    ast          Asturian                                ast-ES
//    az           Azerbaijani                             az-Latn-AZ
//    az-Cyrl      Azerbaijani (Cyrillic)                  az-Cyrl-AZ
//    az-Latn      Azerbaijani (Latin)                     az-Latn-AZ
//    ba           Bashkir                                 ba-RU
//    bas          Basaa                                   bas-CM
//    be           Belarusian                              be-BY
//    bem          Bemba                                   bem-ZM
//    bez          Bena                                    bez-TZ
//    bg           Bulgarian                               bg-BG
//    bin          Edo                                     bin-NG
//    bm           Bamanankan                              bm-Latn-ML
//    bm-Latn      Bamanankan (Latin)                      bm-Latn-ML
//    bn           Bangla                                  bn-BD
//    bo           Tibetan                                 bo-CN
//    br           Breton                                  br-FR
//    brx          Bodo                                    brx-IN
//    bs           Bosnian                                 bs-Latn-BA
//    bs-Cyrl      Bosnian (Cyrillic)                      bs-Cyrl-BA
//    bs-Latn      Bosnian (Latin)                         bs-Latn-BA
//    byn          Blin                                    byn-ER
//    ca           Catalan                                 ca-ES
//    ce           Chechen                                 ce-RU
//    cgg          Chiga                                   cgg-UG
//    chr          Cherokee                                chr-Cher-US
//    chr-Cher     Cherokee                                chr-Cher-US
//    co           Corsican                                co-FR
//    cs           Czech                                   cs-CZ
//    cu           Church Slavic                           cu-RU
//    cy           Welsh                                   cy-GB
//    da           Danish                                  da-DK
//    dav          Taita                                   dav-KE
//    de           German                                  de-DE
//    dje          Zarma                                   dje-NE
//    dsb          Lower Sorbian                           dsb-DE
//    dua          Duala                                   dua-CM
//    dv           Divehi                                  dv-MV
//    ...
//    ta           Tamil                                   ta-IN
//    te           Telugu                                  te-IN
//    teo          Teso                                    teo-UG
//    tg           Tajik                                   tg-Cyrl-TJ
//    tg-Cyrl      Tajik (Cyrillic)                        tg-Cyrl-TJ
//    th           Thai                                    th-TH
//    ti           Tigrinya                                ti-ER
//    tig          Tigre                                   tig-ER
//    tk           Turkmen                                 tk-TM
//    tn           Setswana                                tn-ZA
//    to           Tongan                                  to-TO
//    tr           Turkish                                 tr-TR
//    ts           Tsonga                                  ts-ZA
//    tt           Tatar                                   tt-RU
//    twq          Tasawaq                                 twq-NE
//    tzm          Central Atlas Tamazight                 tzm-Latn-DZ
//    tzm-Arab     Central Atlas Tamazight (Arabic)        tzm-Arab-MA
//    tzm-Latn     Central Atlas Tamazight (Latin)         tzm-Latn-DZ
//    tzm-Tfng     Central Atlas Tamazight (Tifinagh)      tzm-Tfng-MA
//    ug           Uyghur                                  ug-CN
//    uk           Ukrainian                               uk-UA
//    ur           Urdu                                    ur-PK
//    uz           Uzbek                                   uz-Latn-UZ
//    uz-Arab      Uzbek (Perso-Arabic)                    uz-Arab-AF
//    uz-Cyrl      Uzbek (Cyrillic)                        uz-Cyrl-UZ
//    uz-Latn      Uzbek (Latin)                           uz-Latn-UZ
//    vai          Vai                                     vai-Vaii-LR
//    vai-Latn     Vai (Latin)                             vai-Latn-LR
//    vai-Vaii     Vai (Vai)                               vai-Vaii-LR
//    ve           Venda                                   ve-ZA
//    vi           Vietnamese                              vi-VN
//    vo           Volapük                                 vo-001
//    vun          Vunjo                                   vun-TZ
//    wae          Walser                                  wae-CH
//    wal          Wolaytta                                wal-ET
//    wo           Wolof                                   wo-SN
//    xh           isiXhosa                                xh-ZA
//    xog          Soga                                    xog-UG
//    yav          Yangben                                 yav-CM
//    yi           Yiddish                                 yi-001
//    yo           Yoruba                                  yo-NG
//    zgh          Standard Moroccan Tamazight             zgh-Tfng-MA
//    zgh-Tfng     Standard Moroccan Tamazight (Tifinagh)  zgh-Tfng-MA
//    zh           Chinese                                 zh-CN
//    zh-CHS       Chinese (Simplified) Legacy             zh-CN
//    zh-CHT       Chinese (Traditional) Legacy            zh-HK
//    zh-Hans      Chinese (Simplified)                    zh-CN
//    zh-Hant      Chinese (Traditional)                   zh-HK
//    zu           isiZulu                                 zu-ZA
// The example displays output like the following on a Unix-based system. The output has been cropped for brevity.
//    CULTURE                                              SPECIFIC CULTURE
//                 Invariant Language (Invariant Country)
//    af           Afrikaans                               af-ZA
//    agq          Aghem                                   agq-CM
//    ak           Akan                                    ak-GH
//    am           Amharic                                 am-ET
//    ar           Arabic                                  ar-SA
//    as           Assamese                                as-IN
//    asa          Asu                                     asa-TZ
//    ast          Asturian                                ast-ES
//    az           Azerbaijani                             az-Latn-AZ
//    az-Cyrl      Azerbaijani                             az-Cyrl-AZ
//    az-Latn      Azerbaijani                             az-Latn-AZ
//    bas          Basaa                                   bas-CM
//    be           Belarusian                              be-BY
//    bem          Bemba                                   bem-ZM
//    bez          Bena                                    bez-TZ
//    bg           Bulgarian                               bg-BG
//    bm           Bambara                                 bm-Latn-ML
//    bn           Bangla                                  bn-BD
//    bo           Tibetan                                 bo-CN
//    br           Breton                                  br-FR
//    brx          Bodo                                    brx-IN
//    bs           Bosnian                                 bs-Latn-BA
//    bs-Cyrl      Bosnian                                 bs-Cyrl-BA
//    bs-Latn      Bosnian                                 bs-Latn-BA
//    ca           Catalan                                 ca-ES
//    ccp          Chakma
//    ce           Chechen                                 ce-RU
//    cgg          Chiga                                   cgg-UG
//    chr          Cherokee                                chr-Cher-US
//    ckb          Central Kurdish
//    cs           Czech                                   cs-CZ
//    cy           Welsh                                   cy-GB
//    da           Danish                                  da-DK
//    dav          Taita                                   dav-KE
//    de           German                                  de-DE
//    dje          Zarma                                   dje-NE
//    dsb          Lower Sorbian                           dsb-DE
//    dua          Duala                                   dua-CM
//    ...
//    ta           Tamil                                   ta-IN
//    te           Telugu                                  te-IN
//    teo          Teso                                    teo-UG
//    tg           Tajik                                   tg-Cyrl-TJ
//    th           Thai                                    th-TH
//    ti           Tigrinya                                ti-ER
//    to           Tongan                                  to-TO
//    tr           Turkish                                 tr-TR
//    tt           Tatar                                   tt-RU
//    twq          Tasawaq                                 twq-NE
//    tzm          Central Atlas Tamazight                 tzm-Latn-DZ
//    ug           Uyghur                                  ug-CN
//    uk           Ukrainian                               uk-UA
//    ur           Urdu                                    ur-PK
//    uz           Uzbek                                   uz-Latn-UZ
//    uz-Arab      Uzbek                                   uz-Arab-AF
//    uz-Cyrl      Uzbek                                   uz-Cyrl-UZ
//    uz-Latn      Uzbek                                   uz-Latn-UZ
//    vai          Vai                                     vai-Vaii-LR
//    vai-Latn     Vai                                     vai-Latn-LR
//    vai-Vaii     Vai                                     vai-Vaii-LR
//    vi           Vietnamese                              vi-VN
//    vun          Vunjo                                   vun-TZ
//    wae          Walser                                  wae-CH
//    wo           Wolof                                   wo-SN
//    xog          Soga                                    xog-UG
//    yav          Yangben                                 yav-CM
//    yi           Yiddish                                 yi-001
//    yo           Yoruba                                  yo-NG
//    yue          Cantonese                               yue-HK
//    yue-Hans     Cantonese
//    yue-Hant     Cantonese
//    zgh          Standard Moroccan Tamazight             zgh-Tfng-MA
//    zh           Chinese                                 zh-CN
//    zh-Hans      Chinese                                 zh-CN
//    zh-Hant      Chinese                                 zh-HK
//    zu           Zulu                                    zu-ZA
Imports System.Collections.Generic
Imports System.Globalization
Imports System.Reflection

Public Class Example
   Public Shared Sub Main()
      ' Display the header.
      Console.WriteLine("{0,-53}{1}", "CULTURE", "SPECIFIC CULTURE")

      ' Get each neutral culture in the .NET Framework.
      Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.NeutralCultures)
      ' Sort the returned array by name.
      Array.Sort(Of CultureInfo)(cultures, New NamePropertyComparer(Of CultureInfo)())
      
      ' Determine the specific culture associated with each neutral culture.
      For Each culture As CultureInfo In cultures
         Console.Write("{0,-12} {1,-40}", culture.Name, culture.EnglishName)
         Try
            Console.WriteLine("{0}", CultureInfo.CreateSpecificCulture(culture.Name).Name)
         Catch e As ArgumentException
            Console.WriteLine("(no associated specific culture)")
         End Try
      Next 
   End Sub
End Class

Public Class NamePropertyComparer(Of T) : Implements IComparer(Of T)
   Public Function Compare(x As T, y As T) As Integer _
                   Implements IComparer(Of T).Compare
      If x Is Nothing Then
         If y Is Nothing Then
            Return 0
         Else
            Return -1
         End If
      End If 
      Dim pX As PropertyInfo = x.GetType().GetProperty("Name")
      Dim pY As PropertyInfo = y.GetType().GetProperty("Name")             
      Return String.Compare(CStr(pX.GetValue(x, Nothing)), CStr(pY.GetValue(y, Nothing)))
   End Function
End Class
' The example displays the following output on a Windows system.  This output has been cropped for brevity.
'    CULTURE                                              SPECIFIC CULTURE
               Invariant Language (Invariant Country)  
'    aa           Afar                                    aa-ET
'    af           Afrikaans                               af-ZA
'    agq          Aghem                                   agq-CM
'    ak           Akan                                    ak-GH
'    am           Amharic                                 am-ET
'    ar           Arabic                                  ar-SA
'    arn          Mapudungun                              arn-CL
'    as           Assamese                                as-IN
'    asa          Asu                                     asa-TZ
'    ast          Asturian                                ast-ES
'    az           Azerbaijani                             az-Latn-AZ
'    az-Cyrl      Azerbaijani (Cyrillic)                  az-Cyrl-AZ
'    az-Latn      Azerbaijani (Latin)                     az-Latn-AZ
'    ba           Bashkir                                 ba-RU
'    bas          Basaa                                   bas-CM
'    be           Belarusian                              be-BY
'    bem          Bemba                                   bem-ZM
'    bez          Bena                                    bez-TZ
'    bg           Bulgarian                               bg-BG
'    bin          Edo                                     bin-NG
'    bm           Bamanankan                              bm-Latn-ML
'    bm-Latn      Bamanankan (Latin)                      bm-Latn-ML
'    bn           Bangla                                  bn-BD
'    bo           Tibetan                                 bo-CN
'    br           Breton                                  br-FR
'    brx          Bodo                                    brx-IN
'    bs           Bosnian                                 bs-Latn-BA
'    bs-Cyrl      Bosnian (Cyrillic)                      bs-Cyrl-BA
'    bs-Latn      Bosnian (Latin)                         bs-Latn-BA
'    byn          Blin                                    byn-ER
'    ca           Catalan                                 ca-ES
'    ce           Chechen                                 ce-RU
'    cgg          Chiga                                   cgg-UG
'    chr          Cherokee                                chr-Cher-US
'    chr-Cher     Cherokee                                chr-Cher-US
'    co           Corsican                                co-FR
'    cs           Czech                                   cs-CZ
'    cu           Church Slavic                           cu-RU
'    cy           Welsh                                   cy-GB
'    da           Danish                                  da-DK
'    dav          Taita                                   dav-KE
'    de           German                                  de-DE
'    dje          Zarma                                   dje-NE
'    dsb          Lower Sorbian                           dsb-DE
'    dua          Duala                                   dua-CM
'    dv           Divehi                                  dv-MV
'    ...
'    ta           Tamil                                   ta-IN
'    te           Telugu                                  te-IN
'    teo          Teso                                    teo-UG
'    tg           Tajik                                   tg-Cyrl-TJ
'    tg-Cyrl      Tajik (Cyrillic)                        tg-Cyrl-TJ
'    th           Thai                                    th-TH
'    ti           Tigrinya                                ti-ER
'    tig          Tigre                                   tig-ER
'    tk           Turkmen                                 tk-TM
'    tn           Setswana                                tn-ZA
'    to           Tongan                                  to-TO
'    tr           Turkish                                 tr-TR
'    ts           Tsonga                                  ts-ZA
'    tt           Tatar                                   tt-RU
'    twq          Tasawaq                                 twq-NE
'    tzm          Central Atlas Tamazight                 tzm-Latn-DZ
'    tzm-Arab     Central Atlas Tamazight (Arabic)        tzm-Arab-MA
'    tzm-Latn     Central Atlas Tamazight (Latin)         tzm-Latn-DZ
'    tzm-Tfng     Central Atlas Tamazight (Tifinagh)      tzm-Tfng-MA
'    ug           Uyghur                                  ug-CN
'    uk           Ukrainian                               uk-UA
'    ur           Urdu                                    ur-PK
'    uz           Uzbek                                   uz-Latn-UZ
'    uz-Arab      Uzbek (Perso-Arabic)                    uz-Arab-AF
'    uz-Cyrl      Uzbek (Cyrillic)                        uz-Cyrl-UZ
'    uz-Latn      Uzbek (Latin)                           uz-Latn-UZ
'    vai          Vai                                     vai-Vaii-LR
'    vai-Latn     Vai (Latin)                             vai-Latn-LR
'    vai-Vaii     Vai (Vai)                               vai-Vaii-LR
'    ve           Venda                                   ve-ZA
'    vi           Vietnamese                              vi-VN
'    vo           Volapük                                 vo-001
'    vun          Vunjo                                   vun-TZ
'    wae          Walser                                  wae-CH
'    wal          Wolaytta                                wal-ET
'    wo           Wolof                                   wo-SN
'    xh           isiXhosa                                xh-ZA
'    xog          Soga                                    xog-UG
'    yav          Yangben                                 yav-CM
'    yi           Yiddish                                 yi-001
'    yo           Yoruba                                  yo-NG
'    zgh          Standard Moroccan Tamazight             zgh-Tfng-MA
'    zgh-Tfng     Standard Moroccan Tamazight (Tifinagh)  zgh-Tfng-MA
'    zh           Chinese                                 zh-CN
'    zh-CHS       Chinese (Simplified) Legacy             zh-CN
'    zh-CHT       Chinese (Traditional) Legacy            zh-HK
'    zh-Hans      Chinese (Simplified)                    zh-CN
'    zh-Hant      Chinese (Traditional)                   zh-HK
'    zu           isiZulu                                 zu-ZA
' The example displays output like the following on a Unix-based system. The output has been cropped for brevity.
CULTURE                                              SPECIFIC CULTURE
'                 Invariant Language (Invariant Country)
'    af           Afrikaans                               af-ZA
'    agq          Aghem                                   agq-CM
'    ak           Akan                                    ak-GH
'    am           Amharic                                 am-ET
'    ar           Arabic                                  ar-SA
'    as           Assamese                                as-IN
'    asa          Asu                                     asa-TZ
'    ast          Asturian                                ast-ES
'    az           Azerbaijani                             az-Latn-AZ
'    az-Cyrl      Azerbaijani                             az-Cyrl-AZ
'    az-Latn      Azerbaijani                             az-Latn-AZ
'    bas          Basaa                                   bas-CM
'    be           Belarusian                              be-BY
'    bem          Bemba                                   bem-ZM
'    bez          Bena                                    bez-TZ
'    bg           Bulgarian                               bg-BG
'    bm           Bambara                                 bm-Latn-ML
'    bn           Bangla                                  bn-BD
'    bo           Tibetan                                 bo-CN
'    br           Breton                                  br-FR
'    brx          Bodo                                    brx-IN
'    bs           Bosnian                                 bs-Latn-BA
'    bs-Cyrl      Bosnian                                 bs-Cyrl-BA
'    bs-Latn      Bosnian                                 bs-Latn-BA
'    ca           Catalan                                 ca-ES
'    ccp          Chakma
'    ce           Chechen                                 ce-RU
'    cgg          Chiga                                   cgg-UG
'    chr          Cherokee                                chr-Cher-US
'    ckb          Central Kurdish
'    cs           Czech                                   cs-CZ
'    cy           Welsh                                   cy-GB
'    da           Danish                                  da-DK
'    dav          Taita                                   dav-KE
'    de           German                                  de-DE
'    dje          Zarma                                   dje-NE
'    dsb          Lower Sorbian                           dsb-DE
'    dua          Duala                                   dua-CM
'    ...
'    ta           Tamil                                   ta-IN
'    te           Telugu                                  te-IN
'    teo          Teso                                    teo-UG
'    tg           Tajik                                   tg-Cyrl-TJ
'    th           Thai                                    th-TH
'    ti           Tigrinya                                ti-ER
'    to           Tongan                                  to-TO
'    tr           Turkish                                 tr-TR
'    tt           Tatar                                   tt-RU
'    twq          Tasawaq                                 twq-NE
'    tzm          Central Atlas Tamazight                 tzm-Latn-DZ
'    ug           Uyghur                                  ug-CN
'    uk           Ukrainian                               uk-UA
'    ur           Urdu                                    ur-PK
'    uz           Uzbek                                   uz-Latn-UZ
'    uz-Arab      Uzbek                                   uz-Arab-AF
'    uz-Cyrl      Uzbek                                   uz-Cyrl-UZ
'    uz-Latn      Uzbek                                   uz-Latn-UZ
'    vai          Vai                                     vai-Vaii-LR
'    vai-Latn     Vai                                     vai-Latn-LR
'    vai-Vaii     Vai                                     vai-Vaii-LR
'    vi           Vietnamese                              vi-VN
'    vun          Vunjo                                   vun-TZ
'    wae          Walser                                  wae-CH
'    wo           Wolof                                   wo-SN
'    xog          Soga                                    xog-UG
'    yav          Yangben                                 yav-CM
'    yi           Yiddish                                 yi-001
'    yo           Yoruba                                  yo-NG
'    yue          Cantonese                               yue-HK
'    yue-Hans     Cantonese
'    yue-Hant     Cantonese
'    zgh          Standard Moroccan Tamazight             zgh-Tfng-MA
'    zh           Chinese                                 zh-CN
'    zh-Hans      Chinese                                 zh-CN
'    zh-Hant      Chinese                                 zh-HK
'    zu           Zulu                                    zu-ZA

Remarks

The CreateSpecificCulture method wraps a call to the CultureInfo(String) constructor.

Note

For a list of predefined culture names on Windows systems, see the Language tag column in the list of language/region names supported by Windows. Culture names follow the standard defined by BCP 47. In addition, starting with Windows 10, name can be any valid BCP-47 language tag.

Cultures are grouped into three sets: the invariant culture, the neutral cultures, and the specific cultures. For more information, see the description of the CultureInfo class.

If the culture identifier of the specific culture returned by this method matches the culture identifier of the current Windows culture, this method creates a CultureInfo object that uses the Windows culture overrides. The overrides include user settings for the properties of the DateTimeFormatInfo object returned by the DateTimeFormat property and the NumberFormatInfo object returned by the NumberFormat property. To instantiate a CultureInfo object that with default culture settings rather than user overrides, call the CultureInfo(String, Boolean) constructor with a value of false for the useUserOverride argument.

Although the CreateSpecificCulture method name includes the term "Specific", remember that culture data can change between versions, or due to custom cultures, or because of user overrides. Use the invariant culture or binary or fixed forms for saving data.

Notes to Callers

.NET Framework 3.5 and earlier versions throw an ArgumentException if name is not a valid culture name. Starting with .NET Framework 4, this method throws a CultureNotFoundException.

On .NET 6 and later versions, a CultureNotFoundException is thrown if the app is running in an environment where globalization-invariant mode is enabled, for example, some Docker containers, and a culture other than the invariant culture is specified.

Applies to

See also