Classe CultureInfo (System.Globalization)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe CultureInfo
Il presente articolo è stato tradotto manualmente. Per visualizzare questa pagina e contemporaneamente visualizzarne il contenuto in lingua inglese, passare alla visualizzazione semplificata.

Fornisce informazioni su impostazioni cultura specifiche, ovvero "impostazioni locali" per lo sviluppo di codice non gestito. Le informazioni includono i nomi per le impostazioni cultura, il sistema di scrittura, il calendario utilizzato e la formattazione per date e stringhe di ordinamento.

Gerarchia di ereditarietà

System.Object
  System.Globalization.CultureInfo

Spazio dei nomi:  System.Globalization
Assembly:  mscorlib (in mscorlib.dll)
Sintassi

Visual Basic
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class CultureInfo _
	Implements ICloneable, IFormatProvider
C#
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class CultureInfo : ICloneable, 
	IFormatProvider
Visual C++
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class CultureInfo : ICloneable, 
	IFormatProvider
F#
[<SerializableAttribute>]
[<ComVisibleAttribute(true)>]
type CultureInfo =  
    class
        interface ICloneable
        interface IFormatProvider
    end

Il tipo CultureInfo espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico Supportato da XNA Framework CultureInfo(Int32) Inizializza una nuova istanza della classe CultureInfo in base alle impostazioni cultura specificate dall'identificatore delle impostazioni cultura.
Metodo pubblico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif CultureInfo(String) Inizializza una nuova istanza della classe CultureInfo in base alle impostazioni cultura specificate per nome.
Metodo pubblico Supportato da XNA Framework CultureInfo(Int32, Boolean) Inizializza una nuova istanza della classe CultureInfo in base alle impostazioni cultura specificate dall'identificatore di impostazioni cultura e al valore Boolean che specifica se utilizzare le impostazioni cultura del sistema selezionate dall'utente.
Metodo pubblico Supportato da XNA Framework CultureInfo(String, Boolean) Inizializza una nuova istanza della classe CultureInfo in base alle impostazioni cultura specificate per nome e al valore Boolean che indica se utilizzare le impostazioni cultura del sistema selezionate dall'utente.
In alto
Proprietà

  Nome Descrizione
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif Calendar Ottiene il calendario predefinito utilizzato per le impostazioni cultura.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif CompareInfo Ottiene l'oggetto CompareInfo che definisce come confrontare le stringhe per le impostazioni cultura.
Proprietà pubblica CultureTypes Ottiene i tipi di impostazioni cultura che riguardano l'oggetto CultureInfo corrente.
Proprietà pubblica Membro statico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif CurrentCulture Ottiene l'oggetto CultureInfo che rappresenta le impostazioni cultura utilizzate dal thread corrente.
Proprietà pubblica Membro statico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif CurrentUICulture Ottiene l'oggetto CultureInfo che rappresenta le impostazioni cultura correnti utilizzate dal gestore risorse per cercare le risorse specifiche delle impostazioni cultura in fase di esecuzione.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif DateTimeFormat Ottiene o imposta un oggetto DateTimeFormatInfo che definisce il formato culturalmente appropriato per la visualizzazione della data e dell'ora.
Proprietà pubblica DisplayName Ottiene il nome delle impostazioni cultura nel formato "<lingua> (<paese>)" nella lingua della versione localizzata di .NET Framework.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif EnglishName Ottiene il nome delle impostazioni cultura nel formato "<lingua> (<paese>)" in inglese.
Proprietà pubblica IetfLanguageTag Obsoleta. Ottiene l'identificazione dello standard RFC 4646 per una lingua.
Proprietà pubblica Membro statico InstalledUICulture Ottiene l'oggetto CultureInfo che rappresenta le impostazioni cultura installate con il sistema operativo.
Proprietà pubblica Membro statico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif InvariantCulture Ottiene l'oggetto CultureInfo indipendente dalle impostazioni cultura.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif IsNeutralCulture Ottiene un valore che indica se la classe CultureInfo corrente rappresenta impostazioni cultura non associate ad alcun paese.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif IsReadOnly Ottiene un valore che indica se la classe CultureInfo corrente è in sola lettura.
Proprietà pubblica KeyboardLayoutId Ottiene l'ID impostazioni locali di input attivo.
Proprietà pubblica Supportato da XNA Framework LCID Ottiene l'identificatore di impostazioni cultura per la classe CultureInfo corrente.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif Name Ottiene il nome delle impostazioni cultura nel formato "<codicelingua2>-<codicepaese2>".
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif NativeName Ottiene il nome di impostazioni cultura, costituite da lingua, paese/provincia e indicatore alfabeto facoltativo, nella lingua impostata per la visualizzazione.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif NumberFormat Ottiene o imposta un oggetto NumberFormatInfo che definisce il formato culturalmente appropriato per la visualizzazione di numeri, valute e percentuali.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif OptionalCalendars Ottiene l'elenco dei calendari utilizzabili con le impostazioni cultura.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif Parent Ottiene l'oggetto CultureInfo che rappresenta le impostazioni cultura padre dell'oggetto CultureInfo corrente.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif TextInfo Ottiene l'oggetto TextInfo che definisce il sistema di scrittura associato alle impostazioni cultura.
Proprietà pubblica Supportato da XNA Framework ThreeLetterISOLanguageName Ottiene il codice ISO 639-2 di tre lettere per la lingua della classe CultureInfo corrente.
Proprietà pubblica Supportato da XNA Framework ThreeLetterWindowsLanguageName Ottiene il codice di tre lettere per la lingua così come è definito dall'API di Windows.
Proprietà pubblica Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif TwoLetterISOLanguageName Ottiene il codice ISO 639-1 di due lettere per la lingua della classe CultureInfo corrente.
Proprietà pubblica Supportato da XNA Framework UseUserOverride Ottiene un valore che indica se la classe CultureInfo corrente utilizza le impostazioni cultura selezionate dall'utente.
In alto
Metodi

  Nome Descrizione
Metodo pubblico Supportato da XNA Framework ClearCachedData Aggiorna le informazioni relative alle impostazioni cultura memorizzate nella cache.
Metodo pubblico Supportato da XNA Framework Clone Crea una copia della classe CultureInfo corrente.
Metodo pubblico Membro statico Supportato da XNA Framework CreateSpecificCulture Crea un oggetto CultureInfo che rappresenta le impostazioni cultura specifiche associate al nome specificato.
Metodo pubblico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif Equals Determina se l'oggetto specificato coincide con le stesse impostazioni cultura della classe CultureInfo corrente. (Esegue l'override di Object.Equals(Object)).
Metodo protetto Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetConsoleFallbackUICulture Ottiene impostazioni cultura dell'interfaccia utente alternative adatte per le applicazioni di console quando le impostazioni cultura predefinite dell'interfaccia utente grafica non sono adatte.
Metodo pubblico Membro statico Supportato da XNA Framework GetCultureInfo(Int32) Recupera un'istanza di sola lettura e inserita nella cache di determinate impostazioni cultura utilizzando l'identificatore delle impostazioni cultura specificato.
Metodo pubblico Membro statico Supportato da XNA Framework GetCultureInfo(String) Recupera un'istanza di sola lettura e inserita nella cache di determinate impostazioni cultura utilizzando il nome delle impostazioni cultura specificato.
Metodo pubblico Membro statico GetCultureInfo(String, String) Recupera un'istanza di sola lettura e inserita nella cache di determinate impostazioni cultura. I parametri specificano le impostazioni cultura inizializzate con gli oggetti TextInfo e CompareInfo specificati da altre impostazioni cultura.
Metodo pubblico Membro statico GetCultureInfoByIetfLanguageTag Obsoleta. Recupera un oggetto CultureInfo di sola lettura con caratteristiche linguistiche identificate dal tag della lingua RFC 4646 specificato.
Metodo pubblico Membro statico GetCultures Ottiene l'elenco delle impostazioni cultura supportate filtrate dal parametro CultureTypes specificato.
Metodo pubblico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif GetFormat Ottiene un oggetto che definisce le modalità di formattazione del tipo specificato.
Metodo pubblico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif GetHashCode Viene utilizzato come funzione hash per la classe CultureInfo corrente, adatto per algoritmi hash e in strutture di dati, come una tabella hash. (Esegue l'override di Object.GetHashCode()).
Metodo pubblico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico Membro statico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif ReadOnly Restituisce un wrapper in sola lettura per la classe CultureInfo specificata.
Metodo pubblico Supportato da XNA Framework kx54z3k7.PortableClassLibrary(it-it,VS.100).gif ToString Restituisce una stringa che contiene il nome della classe CultureInfo corrente nel formato "<codicelingua2>-<codicepaese2>". (Esegue l'override di Object.ToString()).
In alto
Note

La classe CultureInfo effettua il rendering delle informazioni su impostazioni cultura specifiche, quali le convenzioni associate a una lingua, alle relative varietà di lingua, al paese, al calendario e alla cultura. La classe fornisce inoltre l'accesso a istanze, specifiche delle impostazioni cultura, di DateTimeFormatInfo, NumberFormatInfo, CompareInfo e TextInfo. Questi oggetti contengono le informazioni necessarie per le operazioni specifiche delle impostazioni cultura, quali l'uso delle maiuscole e delle minuscole, la formattazione di date e numeri e il confronto tra stringhe.

La classe String utilizza in modo indiretto questa classe per ottenere informazioni sulle impostazioni cultura.

Nomi e identificatori delle impostazioni cultura

La classe CultureInfo specifica un nome univoco per qualsiasi tipo di impostazioni cultura, in base a RFC 4646 (Windows Vista e versioni successive). Il nome è una combinazione di un codice impostazioni cultura a due lettere minuscole ISO 639 associato a una lingua e un codice impostazioni cultura secondarie a due lettere maiuscole ISO 3166 associato a un paese.

Il formato del nome delle impostazioni cultura è "<codicelingua2>-<codicepaese2>", dove <codicelingua2> è il codice lingua e <codicepaese2> è il codice impostazioni cultura secondarie. Gli esempi includono ja-JP per il giapponese (Giappone) e en-US per l'inglese (Stati Uniti). Nei casi in cui non è disponibile un codice lingua a due lettere, viene utilizzato un codice a tre lettere derivato da ISO 639-2.

Si noti che alcuni nomi di impostazioni cultura specificano anche un alfabeto ISO 15924. Ad esempio, "- Cyrl" specifica l'alfabeto cirillico e "- Latn" l'alfabeto latino. In Windows Vista e versioni successive è possibile eseguire il rendering di un nome di impostazioni cultura che include un alfabeto utilizzando il modello <codicelingua2>-<tagalfabeto>-<codicepaese2>. Uno esempio di questo tipo di nome di impostazioni cultura è uz-Cyrl-UZ per l'uzbeco (Uzbekistan, alfabeto cirillico). Nei sistemi operativi precedenti a Windows Vista, per il rendering di un nome di impostazioni cultura che include un alfabeto viene utilizzato il modello <codicelingua2>-<codicepaese2>-<tagalfabeto>, ad esempio uz-UZ-Cyrl per l'uzbeco (Uzbekistan, alfabeto cirillico).

Le impostazioni cultura non associate ad alcun paese sono specificate solo dal codice lingua a due lettere minuscole. Ad esempio, "fr" specifica le impostazioni cultura non associate ad alcun paese per il francese e "de" quelle per il tedesco.

Nota Nota

Due nomi di impostazioni cultura contraddicono tale regola. Le impostazioni cultura zh-Hans (Cinese semplificato) e zh-Hant (Cinese tradizionale) non sono associate ad alcun paese. I nomi delle impostazioni cultura rappresentano lo standard corrente e devono essere utilizzati a meno che non esistano ragioni particolari per utilizzare le denominazioni meno recenti "zh-CHS" e "zh-CHT".

Un identificatore delle impostazioni cultura è un'abbreviazione numerica internazionale standard che contiene i componenti necessari per identificare in modo univoco una delle impostazioni cultura installate. L'applicazione può utilizzare identificatori delle impostazioni cultura predefiniti o può definire identificatori personalizzati.

Determinati nomi e identificatori predefiniti delle impostazioni cultura sono utilizzati da questa e da altre classi nello spazio dei nomi System.Globalization. Informazioni sulle impostazioni cultura dettagliate sono visualizzate nella pagina relativa al riferimento alle API NLS (National Language Support) del Developer Center sulla globalizzazione delle applicazioni.

Ricordare che i nomi delle impostazioni cultura e gli identificatori rappresentano solo un sottoinsieme delle impostazioni cultura che possono trovarsi in un particolare computer. Versioni di Windows o Service Pack possono modificare le impostazioni cultura disponibili. Le applicazioni aggiungono impostazioni cultura personalizzate utilizzando la classe CultureAndRegionInfoBuilder. Gli utenti aggiungono impostazioni cultura personalizzate utilizzando lo strumento generatore di impostazioni locali (Microsoft Locale Builder). Microsoft Locale Builder viene scritto in codice gestito utilizzando la classe CultureAndRegionInfoBuilder.

Molti nomi distinti sono strettamente associati alle impostazioni cultura, in particolare quelli associati ai seguenti membri di classe:

Vedere Nomi associati a un oggetto CultureInfo per informazioni sulla relazione fra questi nomi.

Lingua inglese, impostazioni cultura non associate ad alcun paese e specifiche

Le impostazioni cultura vengono in genere raggruppate in tre insiemi: lingua inglese, impostazioni cultura non associate ad alcun paese e specifiche.

La lingua inglese non dipende dalle impostazioni cultura. L'applicazione specifica la lingua inglese in base al nome tramite una stringa vuota ("") o in base al relativo identificatore. InvariantCulture consente di definire un'istanza della lingua inglese. Questa è associata alla lingua inglese, ma non a un paese particolare. Viene utilizzata praticamente in qualsiasi metodo, nello spazio dei nomi Globalization in cui sono necessarie le impostazioni cultura.

Le impostazioni cultura non associate ad alcun paese sono impostazioni cultura associate a una lingua ma non a un paese. Impostazioni cultura specifiche sono impostazioni cultura associate a una lingua e a un paese. Ad esempio, fr è il nome di sistema per le impostazioni cultura francesi e fr-FR è il nome delle impostazioni cultura specifiche del francese (Francia). Si noti che Cinese semplificato e Cinese tradizionale sono impostazioni cultura non associate ad alcun paese.

La creazione di un'istanza di una classe CompareInfo per impostazioni cultura non associate ad alcun paese è sconsigliata poiché i dati contenuti sono arbitrari. Per visualizzare e ordinare i dati, specificare la lingua e la regione. Inoltre, la proprietà Name di un oggetto CompareInfo creato per impostazioni cultura non associate ad alcun paese restituisce soltanto il paese e non include la regione.

Esiste una gerarchia di impostazioni cultura definite, in cui il padre di determinate impostazioni cultura rappresenta le impostazioni cultura non associate ad alcun paese e il padre di queste ultime rappresenta la lingua inglese. La proprietà Parent contiene le impostazioni cultura non associate ad alcun paese ma associate a impostazioni cultura specifiche. Nelle impostazioni cultura personalizzate è necessario definire la proprietà Parent conformemente a questo modello.

Se il sistema operativo non dispone di risorse per le impostazioni cultura specifiche, vengono utilizzate le risorse per le impostazioni cultura non associate ad alcun paese. Se non sono disponibili le risorse per le impostazioni cultura non associate ad alcun paese, vengono utilizzate le risorse per le impostazioni cultura incorporate nell'assembly principale. Per ulteriori informazioni sul processo di fallback delle risorse, vedere Creazione del package e distribuzione delle risorse.

L'elenco di impostazioni locali disponibile nell'API Windows è leggermente diverso dall'elenco delle impostazioni cultura supportate da .NET Framework. Se è necessaria l'interoperabilità con Windows, ad esempio attraverso il meccanismo p/invoke, l'applicazione deve utilizzare impostazioni cultura specifiche, definite per il sistema operativo. Utilizzando le impostazioni cultura specifiche si garantirà la coerenza con le equivalenti impostazioni locali di Windows, identificate dallo stesso ID impostazioni locali della proprietà LCID.

Un oggetto DateTimeFormatInfo o NumberFormatInfo può essere creato solo per la lingua inglese o per le impostazioni cultura specifiche, non per le impostazioni cultura non associate ad alcun paese.

Se la proprietà DateTimeFormatInfo.Calendar è impostata sull'oggetto TaiwanCalendar, ma la proprietà Thread.CurrentCulture non è impostata su "zh-TW", la proprietà DateTimeFormatInfo.NativeCalendarName e i metodi DateTimeFormatInfo.GetEraName e DateTimeFormatInfo.GetAbbreviatedEraName restituiranno una stringa vuota ("").

Impostazioni cultura personalizzate

Per preparare il software a gestire impostazioni cultura personalizzate, si considerino gli elementi seguenti:

  • Le impostazioni cultura personalizzate possono avere valori che superano gli intervalli delle impostazioni cultura fornite da Microsoft. Ad esempio, alcune impostazioni cultura hanno nomi dei mesi insolitamente lunghi, formati imprevisti per data e ora, o altri dati insoliti.

  • Rispettare i valori dei dati delle impostazioni cultura dell'utente; ad esempio, l'utente potrebbe desiderare un formato ora del tipo a 24 ore o un formato data del tipo YYYYMMDD.

  • Si ricordi che le impostazioni cultura personalizzate eseguono l'override dei valori predefiniti. Pertanto, non è possibile considerare stabili i dati delle impostazioni cultura. I nomi dei paesi, i formati della data, le ortografie ecc., verranno probabilmente modificati in futuro. Se l'applicazione deve serializzare utilizzando questi dati, come per le funzioni di formattazione e di analisi DateTime, deve utilizzare la lingua inglese o un formato specifico.

Dati dinamici delle impostazioni cultura

Ad eccezione della lingua inglese, i dati delle impostazioni cultura sono dinamici. Questo vale anche per le impostazioni cultura predefinite. Ad esempio, quando in un paese viene adottata una nuova valuta, viene modificata l'ortografia delle parole o viene cambiato il calendario preferito, le definizioni delle impostazioni cultura cambiano per adeguarsi a tali novità. Le impostazioni cultura personalizzate sono soggette a modifica senza preavviso e qualsiasi impostazioni cultura specifiche potrebbero essere sottoposte a override da impostazioni cultura di sostituzione personalizzate. Come illustrato di seguito, inoltre, un singolo utente può eseguire l'override di preferenze relative alla lingua. In fase di esecuzione, le applicazioni devono ottenere sempre i dati delle impostazioni cultura.

Nota di avviso Attenzione

Durante il salvataggio dei dati, l'applicazione deve utilizzare la lingua inglese, un formato binario o un formato specifico indipendente dalle impostazioni cultura. I dati salvati in base ai valori correnti associati a impostazioni cultura specifiche diverse dalla lingua inglese potrebbero diventare illeggibili o cambiare significato in caso di modifica di tali impostazioni.

Serializzazione di un oggetto CultureInfo

La serializzazione di un oggetto CultureInfo implica in realtà l'archiviazione delle proprietà Name e UseUserOverride. L'oggetto può pertanto essere deserializzato correttamente solo in un ambiente in cui la proprietà Name ha lo stesso significato. Nei tre esempi riportati di seguito vengono illustrati i motivi per i quali ciò non è sempre possibile:

  • Se la proprietà CultureTypes indica CultureTypes.WindowsOnlyCultures e se tali impostazioni cultura sono state introdotte per la prima volta in Windows Vista, non sarà possibile deserializzarle in Windows XP. Analogamente, se le impostazioni cultura sono state introdotte per la prima volta in Windows XP Service Pack 2, non è possibile deserializzarle per un sistema Windows XP in cui le impostazioni cultura non sono state installate.

  • Se la proprietà CultureTypes indica CultureTypes.UserCustomCulture e nel computer in cui viene deserializzata non sono installate tali impostazioni cultura personalizzate dall'utente, non è possibile deserializzarla.

  • Se la proprietà CultureTypes indica CultureTypes.ReplacementCultures e nel computer in cui viene deserializzata non sono disponibili tali impostazioni cultura di sostituzione, verrà deserializzata con lo stesso nome ma non con tutte le stesse caratteristiche. Ad esempio, se "en-US" sono impostazioni cultura di sostituzione nel computer A ma non nel computer B e se un oggetto CultureInfo che fa riferimento a queste impostazioni cultura viene serializzato nel computer A e deserializzato nel computer B, non verrà trasmessa nessuna delle caratteristiche personalizzate delle impostazioni cultura. Le impostazioni cultura vengono deserializzate correttamente, ma il significato sarà diverso.

Impostazioni locali di Windows

A partire dalla versione 2.0 di .NET Framework, il costruttore CultureInfo supporta l'utilizzo delle impostazioni locali di Windows, ovvero le impostazioni cultura, per generare automaticamente impostazioni cultura non esistenti in .NET Framework. Per ulteriori informazioni, vedere Impostazioni cultura generate dalle impostazioni locali di Windows.

Override del Pannello di controllo

L'utente può scegliere di eseguire l'override di alcuni valori associati alle impostazioni cultura correnti di Windows utilizzando la sezione Opzioni internazionali e della lingua nel Pannello di controllo. L'utente, ad esempio, può scegliere di visualizzare la data in un formato diverso o di utilizzare una valuta diversa da quella predefinita per le impostazioni cultura specificate. In generale, le applicazioni devono rispettare questi override dell'utente.

Se la proprietà UseUserOverride è true e le impostazioni cultura specificate corrispondono alle impostazioni cultura correnti di Windows, la classe CultureInfo consentirà di utilizzare tali override, incluse le impostazioni dell'utente per le proprietà dell'istanza di DateTimeFormatInfo restituita dalla proprietà DateTimeFormat e le proprietà dell'istanza di NumberFormatInfo restituita dalla proprietà NumberFormat. Se le impostazioni utente non sono compatibili con le impostazioni cultura associate alla classe CultureInfo, ad esempio, nel caso in cui il calendario selezionato non fa parte dei calendari specificati dalla proprietà OptionalCalendars, i risultati dei metodi e i valori delle proprietà sono indefiniti.

Per le impostazioni cultura che utilizzano l'euro, la valuta predefinita in .NET Framework e Windows XP è impostata sull'euro. Tale impostazione non viene tuttavia adottata nelle versioni precedenti di Windows. Di conseguenza, se l'utente di una versione precedente di Windows non ha modificato la valuta tramite le Opzioni internazionali e della lingua nel Pannello di controllo, la valuta potrebbe non essere corretta. Per utilizzare l'impostazione predefinita di .NET Framework per la valuta, l'applicazione deve utilizzare un overload del costruttore di CultureInfo che accetta un parametro useUserOverride e impostarlo su false.

Ordinamenti alternativi

Le impostazioni cultura spagnole (Spagna) prevede due identificatori di impostazioni cultura, 0x0C0A che utilizza l'ordinamento internazionale predefinito e 0x040A che utilizza l'ordinamento tradizionale. Se l'oggetto CultureInfo viene costruito utilizzando il nome delle impostazioni cultura es-ES, il nuovo oggetto CultureInfo utilizzerà l'ordinamento internazionale predefinito. Per l'ordinamento tradizionale, l'oggetto viene costruito tramite il nome es-ES_tradnl. Per ulteriori informazioni su altre impostazioni cultura con ordinamenti alternativi, vedere Confronto e ordinamento di dati per specifiche impostazioni cultura.

Interfacce implementate

Questa classe implementa l'interfaccia ICloneable per consentire la duplicazione degli oggetti della classe CultureInfo. Implementa inoltre IFormatProvider per fornire funzioni di formattazione delle informazioni alle applicazioni.

Impostazioni cultura, thread e domini applicazione

Esistono considerazioni univoche quando si utilizza un thread associato a un oggetto CultureInfo. Per ulteriori informazioni sulle impostazioni cultura e i domini applicazione, vedere Domini applicazione e thread.

Esempi

Nell'esempio di codice riportato di seguito viene illustrata la creazione di un oggetto CultureInfo per Spagnolo (Spagna) con l'ordinamento internazionale e di un altro oggetto CultureInfo con l'ordinamento tradizionale.

Visual Basic

Imports System
Imports System.Collections
Imports System.Globalization

Module Module1

    Public Sub Main()

        ' Creates and initializes the CultureInfo which uses the international sort.
        Dim myCIintl As New CultureInfo("es-ES", False)

        ' Creates and initializes the CultureInfo which uses the traditional sort.
        Dim myCItrad As New CultureInfo(&H40A, 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"))

    End Sub 'Main 



'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

End Module


C#

using System;
using System.Collections;
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

*/


Visual C++

using namespace System;
using namespace System::Collections;
using namespace System::Globalization;
int main()
{

   // Creates and initializes the CultureInfo which uses the international sort.
   CultureInfo^ myCIintl = gcnew CultureInfo( "es-ES",false );

   // Creates and initializes the CultureInfo which uses the traditional sort.
   CultureInfo^ myCItrad = gcnew 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

*/


Nell'esempio di codice che segue vengono determinate le impostazioni cultura padre delle singole impostazioni cultura specifiche che utilizzano la lingua cinese.

Nota Nota

Nell'esempio vengono illustrati i nomi delle impostazioni cultura zh-CHS e zh-CHT con gli identificatori d'impostazione cultura 0x0004 e 0x7C04, rispettivamente. Tuttavia, le applicazioni Windows Vista devono utilizzare il nome zh-Hans anziché zh-CHS e il nome zh-Hant anziché zh-CHT. I nomi "zh-Hans" e "zh-Hant rappresentano lo standard corrente e devono essere utilizzati, a meno che non esistano ragioni particolari per utilizzare le denominazioni meno recenti.

Visual Basic

Imports System
Imports System.Globalization

Module Module1

    Public Sub Main()

      ' Prints the header.
        Console.WriteLine("SPECIFIC CULTURE                                     PARENT CULTURE")

        ' Determines the specific cultures that use the Chinese language, and displays the parent culture.
        Dim ci As CultureInfo
        For Each ci In CultureInfo.GetCultures(CultureTypes.SpecificCultures)
            If ci.TwoLetterISOLanguageName = "zh" Then
                Console.Write("0x{0} {1} {2,-40}", ci.LCID.ToString("X4"), ci.Name, ci.EnglishName)
                Console.WriteLine("0x{0} {1} {2}", ci.Parent.LCID.ToString("X4"), ci.Parent.Name, ci.Parent.EnglishName)
            End If
        Next ci

    End Sub 'Main 



'This code produces the following output.
'
'SPECIFIC CULTURE                                     PARENT CULTURE
'0x0404 zh-TW Chinese (Traditional, Taiwan)           0x7C04 zh-CHT Chinese (Traditional) Legacy
'0x0804 zh-CN Chinese (Simplified, PRC)               0x0004 zh-CHS Chinese (Simplified) Legacy
'0x0C04 zh-HK Chinese (Traditional, Hong Kong S.A.R.) 0x7C04 zh-CHT Chinese (Traditional) Legacy
'0x1004 zh-SG Chinese (Simplified, Singapore)         0x0004 zh-CHS Chinese (Simplified) Legacy
'0x1404 zh-MO Chinese (Traditional, Macao S.A.R.)     0x7C04 zh-CHT Chinese (Traditional) Legacy

End Module


C#

using System;
using System.Globalization;

public class SamplesCultureInfo
{

   public static void Main()
   {

      // Prints the header.
      Console.WriteLine("SPECIFIC CULTURE                                     PARENT CULTURE");

      // Determines the specific cultures that use the Chinese language, and displays the parent culture.
      foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
      {
         if (ci.TwoLetterISOLanguageName == "zh")
         {
            Console.Write("0x{0} {1} {2,-40}", ci.LCID.ToString("X4"), ci.Name, ci.EnglishName);
            Console.WriteLine("0x{0} {1} {2}", ci.Parent.LCID.ToString("X4"), ci.Parent.Name, ci.Parent.EnglishName);
         }
      }

   }

}

/*
This code produces the following output.

SPECIFIC CULTURE                                     PARENT CULTURE
0x0404 zh-TW Chinese (Traditional, Taiwan)           0x7C04 zh-CHT Chinese (Traditional) Legacy
0x0804 zh-CN Chinese (Simplified, PRC)               0x0004 zh-CHS Chinese (Simplified) Legacy
0x0C04 zh-HK Chinese (Traditional, Hong Kong S.A.R.) 0x7C04 zh-CHT Chinese (Traditional) Legacy
0x1004 zh-SG Chinese (Simplified, Singapore)         0x0004 zh-CHS Chinese (Simplified) Legacy
0x1404 zh-MO Chinese (Traditional, Macao S.A.R.)     0x7C04 zh-CHT Chinese (Traditional) Legacy

*/


Visual C++

using namespace System;
using namespace System::Globalization;
int main()
{

   // Prints the header.
   Console::WriteLine( "SPECIFIC CULTURE                                     PARENT CULTURE" );

   // Determines the specific cultures that use the Chinese language, 
   // and displays the parent culture.
   System::Collections::IEnumerator^ en = CultureInfo::GetCultures( CultureTypes::SpecificCultures )->GetEnumerator();
   while ( en->MoveNext() )
   {
      CultureInfo^ ci = safe_cast<CultureInfo^>(en->Current);
      if ( ci->TwoLetterISOLanguageName->Equals( "zh" ) )
      {
         Console::Write( "0x{0} {1} {2,-40}", ci->LCID.ToString(  "X4" ), ci->Name, ci->EnglishName );
         Console::WriteLine( "0x{0} {1} {2}", ci->Parent->LCID.ToString( "X4" ), ci->Parent->Name, ci->Parent->EnglishName );
      }
   }
}

/*
This code produces the following output.

SPECIFIC CULTURE                                     PARENT CULTURE
0x0404 zh-TW Chinese (Traditional, Taiwan)           0x7C04 zh-CHT Chinese (Traditional) Legacy
0x0804 zh-CN Chinese (Simplified, PRC)               0x0004 zh-CHS Chinese (Simplified) Legacy
0x0C04 zh-HK Chinese (Traditional, Hong Kong S.A.R.) 0x7C04 zh-CHT Chinese (Traditional) Legacy
0x1004 zh-SG Chinese (Simplified, Singapore)         0x0004 zh-CHS Chinese (Simplified) Legacy
0x1404 zh-MO Chinese (Traditional, Macao S.A.R.)     0x7C04 zh-CHT Chinese (Traditional) Legacy

*/


Informazioni sulla versione

.NET Framework

Supportato in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Supportato in:
Piattaforme

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche

Riferimenti