Share via


CurrentCulture プロパティの使用

更新 : 2007 年 11 月

CurrentCulture プロパティは、現在のカルチャ情報をスレッド単位で表します。この情報によって、日付、時刻、通貨、および数値の各既定形式と、テキスト並べ替え順序、文字列比較、大文字小文字の区別が決定されます。このプロパティで行う設定は言語設定ではありません。このプロパティは、地理的地域の標準設定に関連するデータだけを定義します。したがって、アプリケーションでは CurrentCulture プロパティを特定のカルチャまたは InvariantCulture にのみ設定できます。アプリケーションで CurrentCulture を設定するには、CurrentThread プロパティを使用します。

se513yha.alert_note(ja-jp,VS.90).gifメモ :

CurrentThread のカルチャを変更するには、ControlThread が設定された SecurityPermission オブジェクトが必要です。スレッドに関連付けられたセキュリティの状態によっては、スレッドを操作することは危険です。したがって、このアクセス許可は、信頼できるコードに対してだけ、また必要な場合にだけ付与してください。信頼度の低いコードではスレッドのカルチャを変更できません。

CurrentCulture プロパティの明示的な設定

アプリケーションで CurrentCulture プロパティを明示的に設定できます。このプロパティをドイツ語 (ドイツ) の特定のカルチャ "de-DE" に設定するコード例を次に示します。

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE")
Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");

アプリケーションで CurrentCulture プロパティを初期化するときには、特定のカルチャを使用する必要があります。このプロパティには、"en-US" で示される英語 (U.S.) など、言語と国/地域の両方に関連付けられたカルチャを指定する必要があります。1 つの言語が複数の国や地域で使用される場合があるため、地域情報は、使用する適切な形式指定規則を決定するために必要です。たとえば、アプリケーションで英語のニュートラル カルチャ "en" を指定する場合、このカルチャに対しては複数の日付形式と通貨形式が存在します。日付形式には、米国形式や英国形式などがあります。通貨形式には、ニュージーランド形式やカナダ形式などがあります。アプリケーションが CurrentCulture プロパティを設定するときにニュートラル カルチャを指定すると、例外がスローされます。

ニュートラル カルチャだけを使用できる場合に、アプリケーションで CurrentCulture が要求する形式の CultureInfo オブジェクトを作成するには、CreateSpecificCulture メソッドを使用します。このメソッドにより、ニュートラル カルチャがそれに既定で関連付けられている特定のカルチャに割り当てられ、この特定のカルチャを表す CultureInfo オブジェクトが作成されます。CreateSpecificCulture メソッドを使用してドイツ語のニュートラル カルチャ ("de") をドイツ語 (ドイツ) の特定のカルチャ "de-DE" に割り当てるコード例を次に示します。このコード例は、さらに "de-DE" の CultureInfo オブジェクトを作成し、このオブジェクトを使用して CurrentCulture プロパティの値を初期化します。

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
se513yha.alert_note(ja-jp,VS.90).gifメモ :

このメソッドは省略できます。このメソッドによる割り当てがアプリケーションに適切ではない場合は、アプリケーション固有の割り当てを使用できます。

.aspx ページでの CurrentCulture プロパティの明示的な設定

CreateSpecificCulture メソッドを使用すると、アプリケーションで Web ブラウザの現在の言語を使用して .aspx ページ内の CurrentCulture プロパティを初期化することもできます。UserLanguages プロパティが Web ブラウザの現在の言語を文字列として取得するコード例を次に示します。CreateSpecificCulture メソッドは、この文字列を解析し、CultureInfo オブジェクトを CurrentCulture プロパティの値の初期化に使用できる形式で返します。

' Sets the CurrentCulture property to the culture associated with the Web
' browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0])
// Sets the CurrentCulture property to the culture associated with the Web
// browser's current language setting.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);

ASP.NET アプリケーションでリソースを使用および取得する方法の詳細については、「ASP.NET アプリケーション内のリソース」を参照してください。

CurrentCulture プロパティの暗黙設定

Windows オペレーティング システムでは、GetUserDefaultLCID 関数によって CurrentCulture プロパティを設定します。ユーザーは、コントロール パネルの [地域と言語のオプション] でユーザー カルチャを変更するか、通貨、数値、日付、および時刻の各形式など、ユーザー ロケールに関連する設定を変更することによって、このプロパティを変更できます。

指定されたカルチャの通貨、数値、日付、および時刻について .NET Framework が提供する既定の形式をアプリケーションで使用するには、アプリケーションでユーザー ロケールの既定値をオーバーライドします。アプリケーションは、受け取った useUserOverride パラメータを false に設定するコンストラクタ オーバーロードを使用して、CultureInfo オブジェクトを作成する必要があります。この方法を使用すると、ユーザーのオペレーティング システムの既定の設定値が .NET Framework の既定の設定値によってオーバーライドされます。欧州連合 (EU) 加盟国のユーロでの取引の通貨形式を指定するときには、正しい通貨記号が使用されるようにするため、アプリケーションで useUserOverride パラメータを false に設定することをお勧めします。詳細については、「固有カルチャの数値データの書式指定」の「ユーロ圏の国の通貨書式の指定」を参照してください。

参照

概念

固有カルチャの数値データの書式指定

ASP.NET アプリケーション内のリソース

CultureInfo クラスの使用

CurrentUICulture プロパティの使用

InvariantCulture プロパティの使用