Formatieren für unterschiedliche Kulturen

Aktualisiert: November 2007

Bei den meisten Methoden können die mit einem der Formatbezeichner für Zeichenfolgen zurückgegebenen Werte dynamisch entsprechend der aktuellen Kultur oder einer angegebenen Kultur geändert werden. Eine Überladung der ToString-Methode akzeptiert z. B. einen Formatanbieter, der die IFormatProvider-Schnittstelle implementiert. Klassen, die diese Schnittstelle implementieren, können Zeichen für Dezimal- und Tausendertrennzeichen sowie die Schreibweise und Positionierung von Währungssymbolen angeben. Wenn Sie keine Überschreibung verwenden, die diese Parameter übernimmt, verwendet die ToString-Methode die durch die aktuelle Kultur angegebenen Zeichen.

Im folgenden Beispiel wird mit der CultureInfo-Klasse die Kultur angegeben, die von der ToString-Methode und der Formatzeichenfolge verwendet wird. Dieser Code erstellt eine neue Instanz der CultureInfo-Klasse mit der Bezeichnung MyCulture und initialisiert sie unter Verwendung der Zeichenfolge fr-FR für die Kultur Französisch. Dieses Objekt wird mit dem Formatbezeichner für Zeichenfolgen C an die ToString-Methode übergeben, um einen französischen Währungswert zu erstellen.

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);

Der oben stehende Code zeigt 100,00 an, wenn er in einem Windows Forms-Formular angezeigt wird. Beachten Sie, dass die Konsolenumgebung nicht alle Unicode-Zeichen unterstützt und stattdessen 100,00 ? anzeigt.

In der CultureInfo-Klasse finden Sie eine Liste aller unterstützten Kulturen.

Das folgende Beispiel veranschaulicht, wie das dem aktuellen Thread zugeordnete CultureInfo-Objekt geändert wird. In diesem Beispiel wird davon ausgegangen, dass dem aktuellen Thread die Kultur Englisch (USA) (en-US) zugeordnet ist, und es wird veranschaulicht, wie diese Kultur durch Code geändert wird. Das Beispiel veranschaulicht außerdem, wie eine bestimmte Kultur angegeben wird, indem eine geänderte CultureInfo an eine ToString-Methode übergeben wird, und wie eine neue DateTimeFormatInfo an eine ToString-Methode übergeben wird.

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

Siehe auch

Referenz

System.IFormatProvider

System.Globalization.CultureInfo

Weitere Ressourcen

Formatierung von Typen