Share via


CurrentCulture プロパティの使用

CultureInfo.CurrentCulture プロパティは、日付、時刻、通貨、および数値の各既定形式と、テキスト並べ替え順序、文字列比較、大文字小文字の区別を決定するスレッド別設定です。CurrentCulture プロパティは言語設定ではありません。このプロパティには、地理的地域の標準設定に関連するデータだけが含まれています。したがって、CurrentCulture プロパティは、固有カルチャまたは InvariantCulture にだけ設定できます。Thread.CurrentThread プロパティを使用して、CurrentCulture を設定できます。詳細については、このトピック内で後に示す例を参照してください。

Noteメモ :

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

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

コードで CurrentCulture プロパティを明示的に設定できます。CurrentCulture プロパティを固有カルチャ "de-DE" (ドイツのドイツ語) に設定するコード例を次に示します。

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

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

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

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
Noteメモ :

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

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

CultureInfo.CreateSpecificCulture メソッドを使用すると、Web ブラウザの現在の言語を使用して .aspx ページ内の CurrentCulture プロパティを初期化することもできます。

Request.UserLanguages プロパティが Web ブラウザの現在の言語を文字列として返すコード例を次に示します。CultureInfo.CreateSpecificCulture メソッドは、この文字列を解析してから、CurrentCulture プロパティの値を初期化するために使用できる形式で CultureInfo オブジェクトを返します。

' 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 プロパティの暗黙設定

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

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

参照

関連項目

CultureInfo.CurrentCulture Property

概念

CurrentUICulture プロパティの使用
InvariantCulture プロパティの使用

その他の技術情報

エンコーディングとローカリゼーション