다른 문화권의 형식 지정
업데이트: 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.Globalization.CultureInfo