Partager via


Mise en forme pour différentes cultures

Mise à jour : novembre 2007

Pour la plupart des méthodes, les valeurs retournées à l'aide d'un des spécificateurs de format de chaîne peuvent apporter des modifications dynamiques en fonction de la culture actuelle ou d'une culture spécifiée. Par exemple, une surcharge de la méthode ToString accepte un fournisseur de format qui implémente l'interface IFormatProvider. Les classes qui implémentent cette interface peuvent spécifier les caractères à utiliser comme séparateurs décimaux et des milliers, ainsi que l'orthographe et l'emplacement des symboles monétaires. Si vous n'utilisez pas de substitution qui prend ce paramètre, la méthode ToString utilise les caractères spécifiés par la culture actuelle.

L'exemple suivant utilise la classe CultureInfo pour spécifier la culture employée par la méthode ToString et la chaîne de format. Ce code crée une nouvelle instance de la classe CultureInfo appelée MyCulture et l'initialise avec la culture française à l'aide de la chaîne fr-FR. Cet objet est passé à la méthode ToString avec le spécificateur de format de chaîne C afin de produire une valeur monétaire française.

Dim MyInt As Integer = 100
Dim MyCulture As New CultureInfo("fr-FR")
Dim MyString As String = MyInt.ToString("C", MyCulture)
Console.WriteLine(MyString)
int MyInt = 100;
CultureInfo MyCulture = new CultureInfo("fr-FR");
String MyString = MyInt.ToString("C", MyCulture);
Console.WriteLine(MyString);

Le code précédent affiche 100,00 dans un formulaire Windows Forms. Remarquez que l'environnement de la console ne prend pas en charge tous les caractères Unicode et affiche 100,00 ? à la place.

Consultez la classe CultureInfo pour obtenir une liste de toutes les cultures prises en charge.

L'exemple suivant montre comment modifier l'objet CultureInfoassocié au thread actuel. Il suppose que la culture américaine (en-US) est associée au thread actuel et montre comment modifier cette culture à l'aide de code. Cet exemple montre également comment spécifier une culture spécifique en passant un CultureInfo modifié à une méthode ToStringet comment passer un nouveau DateTimeFormatInfo à une méthode ToString.

Dim dt As DateTime = DateTime.Now
Dim dfi As DateTimeFormatInfo = New DateTimeFormatInfo()
Dim ci As CultureInfo = New CultureInfo("de-DE")

' Create a new custom time pattern for demonstration.
dfi.MonthDayPattern = "MM-MMMM, ddd-dddd"

' Use the DateTimeFormat from the culture associated with 
' the current thread.

Console.WriteLine( dt.ToString("d") ) 
Console.WriteLine( dt.ToString("m") )

' Use the DateTimeFormat object from the specific culture passed.
Console.WriteLine( dt.ToString("d", ci ) )

' Use the settings from the DateTimeFormatInfo object passed.
Console.WriteLine( dt.ToString("m", dfi ) )

' Reset the current thread to a different culture.
Thread.CurrentThread.CurrentCulture = New CultureInfo("fr-BE")
Console.WriteLine( dt.ToString("d") )
' This example produces the following output:
'       3/27/2008
'       March 27
'       27.03.2008
'       03-March, Thu-Thursday
'       27/03/2008      
DateTime dt = DateTime.Now;
DateTimeFormatInfo dfi = new DateTimeFormatInfo();
CultureInfo ci = new CultureInfo("de-DE");

// Create a new custom time pattern for demonstration.
dfi.MonthDayPattern = "MM-MMMM, ddd-dddd";

// Use the DateTimeFormat from the culture associated with 
// the current thread.
Console.WriteLine( dt.ToString("d") ); 
Console.WriteLine( dt.ToString("m") );

// Use the DateTimeFormat object from the specific culture passed.
Console.WriteLine( dt.ToString("d", ci ) );

// Use the settings from the DateTimeFormatInfo object passed.
Console.WriteLine( dt.ToString("m", dfi ) );

// Reset the current thread to a different culture.
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-BE");
Console.WriteLine( dt.ToString("d") );
// This example produces the following output:
//       3/27/2008
//       March 27
//       27.03.2008
//       03-March, Thu-Thursday
//       27/03/2008

Voir aussi

Référence

System.IFormatProvider

System.Globalization.CultureInfo

Autres ressources

Mise en forme des types