다음을 통해 공유


다른 문화권의 형식 지정

업데이트: 2007년 11월

대부분의 메서드에서는 문자열 형식 지정자 중 하나를 사용하여 반환된 값을 현재 문화권이나 지정된 문화권에 따라 동적으로 변경할 수 있습니다. 예를 들어 ToString 메서드 오버로드는 IFormatProvider 인터페이스를 구현하는 형식 공급자를 받아들입니다. 이 인터페이스를 구현하는 클래스는 10진수 및 1000 단위 구분 기호로 사용할 문자, 맞춤법 검사 및 통화 기호의 배치를 지정할 수 있습니다. 이 매개 변수를 갖는 재정의를 사용하지 않으면 ToString 메서드는 현재 문화권에서 지정된 문자를 사용합니다.

다음 예제에서는 CultureInfo 클래스를 사용하여 ToString 메서드와 형식 문자열에서 사용할 문화권을 지정합니다. 이 코드는 MyCulture라는 CultureInfo 클래스의 새 인스턴스를 만들고 이를 fr-FR을 사용하여 프랑스 문화권으로 초기화합니다. 이 개체는 C 문자열 형식 지정자와 함께 ToString 메서드에 전달되어 프랑스 통화값을 만듭니다.

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

앞의 코드는 Windows Forms 폼에 표시될 때 100,00 으로 나타납니다. 콘솔 환경에서는 모든 유니코드 문자가 지원되는 것이 아니므로 100,00 ?가 대신 표시됩니다.

지원되는 모든 문화권 목록을 보려면 CultureInfo 클래스를 참조하십시오.

다음 예제에서는 현재 스레드와 관련된 CultureInfo 개체를 수정하는 방법을 보여 줍니다. 이 예제에서는 현재 스레드와 관련된 문화권을 미국 영어(en-US)로 가정하며 코드를 통해 해당 문화권을 변경하는 방법을 보여 줍니다. 또한 이 예제에서는 수정된 CultureInfo를 ToString메서드에 전달하여 특정 문화권을 지정하는 방법 및 새 DateTimeFormatInfo를 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

참고 항목

참조

System.IFormatProvider

System.Globalization.CultureInfo

기타 리소스

형식 지정