CultureInfo Class

Definition

Provides information about a specific culture (called a locale for unmanaged code development). The information includes the names for the culture, the writing system, the calendar used, the sort order of strings, and formatting for dates and numbers.

C#
public class CultureInfo : IFormatProvider
C#
public class CultureInfo : ICloneable, IFormatProvider
C#
[System.Serializable]
public class CultureInfo : ICloneable, IFormatProvider
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class CultureInfo : ICloneable, IFormatProvider
Inheritance
CultureInfo
Attributes
Implements

Examples

The following example shows how to create a CultureInfo object for Spanish (Spain) with the international sort and another CultureInfo object with the traditional sort.

C#
using System;
using System.Globalization;

public class SamplesCultureInfo
{
    public static void Main()
    {
        // Creates and initializes the CultureInfo which uses the international sort.
        CultureInfo myCIintl = new CultureInfo("es-ES", false);

        // Creates and initializes the CultureInfo which uses the traditional sort.
        CultureInfo myCItrad = new CultureInfo(0x040A, false);

        // Displays the properties of each culture.
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "PROPERTY", "INTERNATIONAL", "TRADITIONAL");
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "CompareInfo", myCIintl.CompareInfo, myCItrad.CompareInfo);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "DisplayName", myCIintl.DisplayName, myCItrad.DisplayName);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "EnglishName", myCIintl.EnglishName, myCItrad.EnglishName);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsNeutralCulture", myCIintl.IsNeutralCulture, myCItrad.IsNeutralCulture);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "IsReadOnly", myCIintl.IsReadOnly, myCItrad.IsReadOnly);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "LCID", myCIintl.LCID, myCItrad.LCID);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Name", myCIintl.Name, myCItrad.Name);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "NativeName", myCIintl.NativeName, myCItrad.NativeName);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "Parent", myCIintl.Parent, myCItrad.Parent);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TextInfo", myCIintl.TextInfo, myCItrad.TextInfo);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterISOLanguageName", myCIintl.ThreeLetterISOLanguageName, myCItrad.ThreeLetterISOLanguageName);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "ThreeLetterWindowsLanguageName", myCIintl.ThreeLetterWindowsLanguageName, myCItrad.ThreeLetterWindowsLanguageName);
        Console.WriteLine("{0,-31}{1,-47}{2,-25}", "TwoLetterISOLanguageName", myCIintl.TwoLetterISOLanguageName, myCItrad.TwoLetterISOLanguageName);
        Console.WriteLine();

        // Compare two strings using myCIintl.
        Console.WriteLine("Comparing \"llegar\" and \"lugar\"");
        Console.WriteLine("   With myCIintl.CompareInfo.Compare: {0}", myCIintl.CompareInfo.Compare("llegar", "lugar"));
        Console.WriteLine("   With myCItrad.CompareInfo.Compare: {0}", myCItrad.CompareInfo.Compare("llegar", "lugar"));
    }
}

/*
This code produces the following output.

PROPERTY                       INTERNATIONAL                                  TRADITIONAL
CompareInfo                    CompareInfo - es-ES                            CompareInfo - es-ES_tradnl
DisplayName                    Spanish (Spain)                                Spanish (Spain)
EnglishName                    Spanish (Spain, International Sort)            Spanish (Spain, Traditional Sort)
IsNeutralCulture               False                                          False
IsReadOnly                     False                                          False
LCID                           3082                                           1034
Name                           es-ES                                          es-ES
NativeName                     Español (España, alfabetización internacional) Español (España, alfabetización tradicional)
Parent                         es                                             es
TextInfo                       TextInfo - es-ES                               TextInfo - es-ES_tradnl
ThreeLetterISOLanguageName     spa                                            spa
ThreeLetterWindowsLanguageName ESN                                            ESP
TwoLetterISOLanguageName       es                                             es

Comparing "llegar" and "lugar"
   With myCIintl.CompareInfo.Compare: -1
   With myCItrad.CompareInfo.Compare: 1

*/

Remarks

For more information about this API, see Supplemental API remarks for CultureInfo.

Constructors

CultureInfo(Int32, Boolean)

Initializes a new instance of the CultureInfo class based on the culture specified by the culture identifier and on a value that specifies whether to use the user-selected culture settings from Windows.

CultureInfo(Int32)

Initializes a new instance of the CultureInfo class based on the culture specified by the culture identifier.

CultureInfo(String, Boolean)

Initializes a new instance of the CultureInfo class based on the culture specified by name and on a value that specifies whether to use the user-selected culture settings from Windows.

CultureInfo(String)

Initializes a new instance of the CultureInfo class based on the culture specified by name.

Properties

Calendar

Gets the default calendar used by the culture.

CompareInfo

Gets the CompareInfo that defines how to compare strings for the culture.

CultureTypes

Gets the culture types that pertain to the current CultureInfo object.

CurrentCulture

Gets or sets the CultureInfo object that represents the culture used by the current thread and task-based asynchronous operations.

CurrentUICulture

Gets or sets the CultureInfo object that represents the current user interface culture used by the Resource Manager to look up culture-specific resources at run time.

DateTimeFormat

Gets or sets a DateTimeFormatInfo that defines the culturally appropriate format of displaying dates and times.

DefaultThreadCurrentCulture

Gets or sets the default culture for threads in the current application domain.

DefaultThreadCurrentUICulture

Gets or sets the default UI culture for threads in the current application domain.

DisplayName

Gets the full localized culture name.

EnglishName

Gets the culture name in the format languagefull [country/regionfull] in English.

IetfLanguageTag

Deprecated. Gets the RFC 4646 standard identification for a language.

InstalledUICulture

Gets the CultureInfo that represents the culture installed with the operating system.

InvariantCulture

Gets the CultureInfo object that is culture-independent (invariant).

IsNeutralCulture

Gets a value indicating whether the current CultureInfo represents a neutral culture.

IsReadOnly

Gets a value indicating whether the current CultureInfo is read-only.

KeyboardLayoutId

Gets the active input locale identifier.

LCID

Gets the culture identifier for the current CultureInfo.

Name

Gets the culture name in the format languagecode2-country/regioncode2.

NativeName

Gets the culture name, consisting of the language, the country/region, and the optional script, that the culture is set to display.

NumberFormat

Gets or sets a NumberFormatInfo that defines the culturally appropriate format of displaying numbers, currency, and percentage.

OptionalCalendars

Gets the list of calendars that can be used by the culture.

Parent

Gets the CultureInfo that represents the parent culture of the current CultureInfo.

TextInfo

Gets the TextInfo that defines the writing system associated with the culture.

ThreeLetterISOLanguageName

Gets the ISO 639-2 three-letter code for the language of the current CultureInfo.

ThreeLetterWindowsLanguageName

Gets the three-letter code for the language as defined in the Windows API.

TwoLetterISOLanguageName

Gets the ISO 639-1 two-letter or ISO 639-3 three-letter code for the language of the current CultureInfo.

UseUserOverride

Gets a value indicating whether the current CultureInfo object uses the user-selected culture settings.

Methods

ClearCachedData()

Refreshes cached culture-related information.

Clone()

Creates a copy of the current CultureInfo.

CreateSpecificCulture(String)

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

Equals(Object)

Determines whether the specified object is the same culture as the current CultureInfo.

GetConsoleFallbackUICulture()

Gets an alternate user interface culture suitable for console applications when the default graphic user interface culture is unsuitable.

GetCultureInfo(Int32)

Retrieves a cached, read-only instance of a culture by using the specified culture identifier.

GetCultureInfo(String, Boolean)

Retrieves a cached, read-only instance of a culture.

GetCultureInfo(String, String)

Retrieves a cached, read-only instance of a culture. Parameters specify a culture that is initialized with the TextInfo and CompareInfo objects specified by another culture.

GetCultureInfo(String)

Retrieves a cached, read-only instance of a culture using the specified culture name.

GetCultureInfoByIetfLanguageTag(String)

Deprecated. Retrieves a read-only CultureInfo object having linguistic characteristics that are identified by the specified RFC 4646 language tag.

GetCultures(CultureTypes)

Gets the list of supported cultures filtered by the specified CultureTypes parameter.

GetFormat(Type)

Gets an object that defines how to format the specified type.

GetHashCode()

Serves as a hash function for the current CultureInfo, suitable for hashing algorithms and data structures, such as a hash table.

GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ReadOnly(CultureInfo)

Returns a read-only wrapper around the specified CultureInfo object.

ToString()

Returns a string containing the name of the current CultureInfo in the format languagecode2-country/regioncode2.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

See also