Compartilhar via


Formatação para diferentes culturas

Para a maioria dos métodos, os valores retornados usando um dos especificadores de formato de sequência de caracteres têm a capacidade de mudar dinamicamente com base na cultura atual o em uma cultura específica.Por exemplo, uma sobrecarga do método ToString aceita um provedor de formato que implementa a interface IFormatProvider.As classes que implementam esta interface podem especificar caracteres a ser usados para separadores de decimais e milhar e para a ortografia e posicionamento de símbolos de moeda.Se você não usar uma substituição que usa esse parâmetro, o método ToString usará caracteres especificados pela cultura atual.

O exemplo a seguir usa a classe CultureInfo para especificar a cultura que o método e a sequência de caracteres de formato ToString usarão.Esse código cria uma nova instância da classe CultureInfo chamada MyCulture e a inicializa para a cultura Francês usando a sequência de caracteres fr-FR.Este objeto é passado para o método ToString com o especificador de formato de sequência de caracteres C para produzir um valor monetário francês.

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

O código acima exibe 100,00 quando exibido em um formulário do Windows Forms.Observe que o ambiente do console não suporta todos os caracteres Unicode e exibe 100,00 ? em vez disso.

Consulte a classe CultureInfo para obter uma lista de todas as culturas suportadas.

O exemplo a seguir ilustra como modificar o CultureInfo objeto associado ao segmento corrente. Este exemplo assume que nos EUAInglês (en-US) é a cultura associada ao thread corrente e mostra como alterar essa cultura através de código.This example also demonstrates how to specify a particular culture by passing a modified CultureInfo to a ToStringmethod and how to pass a new DateTimeFormatInfo to a ToString method.

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

Consulte também

Referência

System.IFormatProvider

System.Globalization.CultureInfo

Outros recursos

Tipos de Formatação