CultureInfo コンストラクター

定義

CultureInfo クラスの新しいインスタンスを初期化します。

オーバーロード

CultureInfo(Int32)

カルチャ識別子によって指定するカルチャに基づいて、CultureInfo クラスの新しいインスタンスを初期化します。

CultureInfo(String)

名前で指定するカルチャに基づいて、CultureInfo クラスの新しいインスタンスを初期化します。

CultureInfo(Int32, Boolean)

カルチャ識別子で指定されたカルチャと、Windows からユーザーが選択したカルチャ設定を使用するかどうかを指定する値に基づいて、 クラスの新しいインスタンス CultureInfo を初期化します。

CultureInfo(String, Boolean)

名前で指定されたカルチャと、Windows からユーザーが選択したカルチャ設定を使用するかどうかを指定する値に基づいて、 クラスの新しいインスタンス CultureInfo を初期化します。

CultureInfo(Int32)

カルチャ識別子によって指定するカルチャに基づいて、CultureInfo クラスの新しいインスタンスを初期化します。

public:
 CultureInfo(int culture);
public CultureInfo (int culture);
new System.Globalization.CultureInfo : int -> System.Globalization.CultureInfo
Public Sub New (culture As Integer)

パラメーター

culture
Int32

定義済みの CultureInfo 識別子、既存の CultureInfo オブジェクトの LCID プロパティ、または Windows 専用カルチャ識別子。

例外

culture が 0 未満です。

culture が有効なカルチャ識別子ではありません。 詳細については、「呼び出し時の注意」をご覧ください。

注釈

Windows システムで使用できるカルチャの定義済みカルチャ識別子は、Windows でサポートされている言語/地域名の一覧の [言語タグ] 列に一覧表示されます。 カルチャ名は、BCP 47 によって定義されている標準に準拠します。

ほとんどの場合、 culture パラメーターは対応する各国語サポート (NLS) ロケール識別子にマップされます。 パラメーターのculture値は、新しい CultureInfoLCID プロパティの値になります。

ロケール名は LCID より推奨されるため、ロケール名コンストラクター CultureInfo.CultureInfoを呼び出することをお勧めします。 カスタム ロケールの場合は、ロケール名が必要です。

ユーザーは、コントロール パネルの地域と言語のオプションの部分を使用して、Windows の現在のカルチャに関連付けられている値の一部をオーバーライドすることを選択できます。 たとえば、ユーザーは日付を別の形式で表示するか、カルチャの既定値以外の通貨を使用するかを選択できます。 指定したカルチャ識別子が現在の Windows カルチャのカルチャ識別子と一致する場合、このコンストラクターは、 プロパティによって返されるインスタンスのプロパティのユーザー設定や、 プロパティによってDateTimeFormat返されるインスタンスのNumberFormatInfoDateTimeFormatInfoプロパティなど、これらのオーバーライドを使用する をNumberFormat作成CultureInfoします。 ユーザー設定が に関連付 CultureInfo けられているカルチャと互換性がない場合 (たとえば、選択した予定表が の OptionalCalendars1 つでない場合)、メソッドの結果とプロパティの値は未定義になります。

指定したカルチャ識別子が現在の Windows カルチャの識別子と一致しない場合、このコンストラクターは、指定したカルチャの既定値を使用する を作成 CultureInfo します。

プロパティは UseUserOverride 常に に設定されます true

たとえば、アラビア語 (サウジアラビア) が現在の Windows カルチャであり、ユーザーがカレンダーをイスラム暦からグレゴリオ暦に変更したとします。

  • ( CultureInfo("0x0401") カルチャ名 ar-SA) Calendar を 使用すると、 が に GregorianCalendar 設定され (ユーザー設定)、 UseUserOverride が に true設定されます。

  • (カルチャ名 th-TH) を 使用CultureInfo("0x041E")すると、 が にThaiBuddhistCalendar設定され (th-TH の既定のカレンダー) が に設定されUseUserOverride、 が にtrue設定Calendarされます。

ユーロを使用するカルチャの場合、.NET Frameworkと Windows XP は既定の通貨をユーロに設定します。 ただし、古いバージョンの Windows ではできません。 したがって、古いバージョンの Windows のユーザーが、コントロール パネルの地域と言語のオプションの部分を通じて通貨設定を変更していない場合、通貨が正しくない可能性があります。 通貨の既定の設定.NET Framework使用するには、アプリケーションで パラメーターをCultureInfo受け取り、それを に設定するコンストラクター オーバーロードをuseUserOverride使用するfalse必要があります。

注意

下位互換性のために、0x0004 または 0x7c04 のパラメーターを使用してculture構築されたカルチャには、それぞれ または zh-CHTzh-CHSプロパティがありますName。 古い名前を使用する理由がない限り、代わりに、 または zh-Hantの現在のzh-Hans標準カルチャ名を使用してカルチャを構築することをお勧めします。

注意 (呼び出し元)

.NET Framework 3.5 以前のバージョンでは、 が有効なカルチャ識別子でない場合cultureは がスローArgumentExceptionされます。 .NET Framework 4 以降、このコンストラクターは をCultureNotFoundExceptionスローします。 Windows 7 以降で .NET Framework 4 以降で実行されるアプリ以降では、オペレーティング システムから識別子cultureを持つオブジェクトを取得CultureInfoしようとします。オペレーティング システムがそのカルチャをサポートしていない場合、メソッドは例外をCultureNotFoundExceptionスローします。

.NET 6 以降のバージョンでは、 CultureNotFoundException グローバリゼーションインバリアント モードが有効になっている環境でアプリが実行されている場合 (たとえば、一部の Docker コンテナーや、インバリアント カルチャ以外のカルチャが指定されている場合)、 がスローされます。

こちらもご覧ください

適用対象

CultureInfo(String)

名前で指定するカルチャに基づいて、CultureInfo クラスの新しいインスタンスを初期化します。

public:
 CultureInfo(System::String ^ name);
public CultureInfo (string name);
new System.Globalization.CultureInfo : string -> System.Globalization.CultureInfo
Public Sub New (name As String)

パラメーター

name
String

定義済みの CultureInfo 名、既存の CultureInfoName、または Windows 専用カルチャ名。 name では、大文字と小文字は区別されません。

例外

name が null です。

name が有効なカルチャ名ではありません。 詳細については、「呼び出し時の注意」をご覧ください。

次の例では、現在のカルチャを取得します。 フランス語 (フランス) カルチャ以外の場合は、 コンストラクターを CultureInfo(String) 呼び出して、フランス語 (フランス) カルチャを表すオブジェクトをインスタンス化 CultureInfo し、現在のカルチャにします。 それ以外の場合は、フランス語 (ルクセンブルク) カルチャを表す オブジェクトをインスタンス化 CultureInfo し、現在のカルチャにします。

using System;
using System.Globalization;

public class ChangeEx1
{
    public static void Main()
    {
        CultureInfo current = CultureInfo.CurrentCulture;
        Console.WriteLine("The current culture is {0}", current.Name);
        CultureInfo newCulture;
        if (current.Name.Equals("fr-FR"))
            newCulture = new CultureInfo("fr-LU");
        else
            newCulture = new CultureInfo("fr-FR");

        CultureInfo.CurrentCulture = newCulture;
        Console.WriteLine("The current culture is now {0}",
                          CultureInfo.CurrentCulture.Name);
    }
}
// The example displays output like the following:
//     The current culture is en-US
//     The current culture is now fr-FR
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim current As CultureInfo = CultureInfo.CurrentCulture
      Console.WriteLine("The current culture is {0}", current.Name)
      Dim newCulture As CultureInfo
      If current.Name.Equals("fr-FR") Then
         newCulture = New CultureInfo("fr-LU")
      Else
         newCulture = new CultureInfo("fr-FR")
      End If

      CultureInfo.CurrentCulture = newCulture
      Console.WriteLine("The current culture is now {0}",
                        CultureInfo.CurrentCulture.Name)
   End Sub
End Module
' The example displays output like the following:
'     The current culture is en-US
'     The current culture is now fr-FR

注釈

Windows システム上の定義済みのカルチャ名の一覧については、Windows でサポートされている言語/地域名の一覧の言語タグ列を参照してください。 カルチャ名は、BCP 47 によって定義されている標準に準拠します。 また、Windows 10 以降では、name任意の有効な BCP-47 言語タグを指定できます。

String.Emptyの場合name、コンストラクターはインバリアント カルチャのインスタンスを作成します。これは、 プロパティのInvariantCulture値を取得することと同じです。

ユーザーは、コントロール パネルの地域と言語のオプションの部分を使用して、Windows の現在のカルチャに関連付けられている値の一部をオーバーライドすることを選択できます。 たとえば、ユーザーは日付を別の形式で表示するか、カルチャの既定値以外の通貨を使用するかを選択できます。 にname関連付けられているカルチャ識別子が現在の Windows カルチャのカルチャ識別子と一致する場合、このコンストラクターは、プロパティによって返されるインスタンスのプロパティのユーザー設定や、 プロパティによってDateTimeFormat返されるインスタンスのNumberFormatInfoDateTimeFormatInfoプロパティなど、これらのオーバーライドを使用するオブジェクトをNumberFormat作成CultureInfoします。 ユーザー設定が に関連付けられている CultureInfoカルチャと互換性がない場合 (たとえば、選択した予定表が の OptionalCalendars1 つではない場合)、メソッドの結果とプロパティの値は未定義です。

name 関連付けられているカルチャ識別子が現在の Windows カルチャのカルチャ識別子と一致しない場合、このコンストラクターは、指定したカルチャの既定値を使用するオブジェクトを作成 CultureInfo します。

プロパティは UseUserOverride 常に に設定されます true

たとえば、アラビア語 (サウジアラビア) が Windows の現在のカルチャであり、ユーザーがカレンダーをイスラム暦からグレゴリオ暦に変更したとします。

LCID new CultureInfo の プロパティは、指定した名前に関連付けられているカルチャ識別子に設定されます。

注意 (呼び出し元)

.NET Framework 3.5 以前のバージョンでは、 が有効なカルチャ名でない場合nameは がスローArgumentExceptionされます。 .NET Framework 4 以降、このコンストラクターは をCultureNotFoundExceptionスローします。 Windows 7 以降で.NET Framework 4 以降で実行されるアプリ以降、メソッドはnameオペレーティング システムから識別子を持つオブジェクトの取得CultureInfoを試みます。オペレーティング システムがそのカルチャをサポートしていない場合、および が補助カルチャまたは置換カルチャの名前でない場合name、メソッドは例外をCultureNotFoundExceptionスローします。

.NET 6 以降のバージョンでは、 CultureNotFoundException グローバリゼーションインバリアント モードが有効になっている環境でアプリが実行されている場合 (たとえば、一部の Docker コンテナーや、インバリアント カルチャ以外のカルチャが指定されている場合)、 がスローされます。

こちらもご覧ください

適用対象

CultureInfo(Int32, Boolean)

カルチャ識別子で指定されたカルチャと、Windows からユーザーが選択したカルチャ設定を使用するかどうかを指定する値に基づいて、 クラスの新しいインスタンス CultureInfo を初期化します。

public:
 CultureInfo(int culture, bool useUserOverride);
public CultureInfo (int culture, bool useUserOverride);
new System.Globalization.CultureInfo : int * bool -> System.Globalization.CultureInfo
Public Sub New (culture As Integer, useUserOverride As Boolean)

パラメーター

culture
Int32

定義済みの CultureInfo 識別子、既存の CultureInfo オブジェクトの LCID プロパティ、または Windows 専用カルチャ識別子。

useUserOverride
Boolean

true ユーザーが選択したカルチャ設定を使用する場合 (Windows のみ)。 false 既定のカルチャ設定を使用する場合は 。

例外

culture が 0 未満です。

culture が有効なカルチャ識別子ではありません。 詳細については、「呼び出し時の注意」をご覧ください。

注釈

Windows システムで使用できる定義済みのカルチャ識別子は、Windows でサポートされている言語/地域名の一覧の [言語タグ] 列に一覧表示されます。 カルチャ名は、BCP 47 によって定義されている標準に準拠します。

ほとんどの場合、 culture パラメーターは対応する各国語サポート (NLS) ロケール識別子にマップされます。 パラメーターのculture値は、新しい CultureInfoLCID プロパティの値になります。

ロケール名は LCID より推奨されるため、ロケール名コンストラクター CultureInfo.CultureInfoを呼び出することをお勧めします。 カスタム ロケールの場合は、ロケール名が必要です。

ユーザーは、コントロール パネルの地域と言語のオプションの部分を使用して、Windows の現在のカルチャに関連付けられている値の一部をオーバーライドすることを選択できます。 たとえば、ユーザーは日付を別の形式で表示するか、カルチャの既定値以外の通貨を使用するかを選択できます。

アプリケーションでは通常、ユーザーのオーバーライドを禁止しないでください。 オーバーライドを禁止しても、データの安定性は保証されません。 詳細については、「 カルチャ データを安定と見なすべきではありません (インバリアントを除く)」のブログ エントリを参照してください。

プロパティが UseUserOverridetrue設定され、指定したカルチャ識別子が現在の Windows カルチャの識別子と一致する場合、このコンストラクターは、 プロパティによって返されるインスタンスのプロパティのユーザー設定や、 プロパティによってDateTimeFormatNumberFormat返されるインスタンスのDateTimeFormatInfoNumberFormatInfoプロパティなど、これらのオーバーライドを使用する を作成CultureInfoします。 ユーザー設定が に関連付けられている CultureInfoカルチャと互換性がない場合 (たとえば、選択した予定表が の OptionalCalendars1 つではない場合)、メソッドの結果とプロパティの値は未定義です。

それ以外の場合、このコンストラクターは、指定したカルチャの既定値を使用する を作成 CultureInfo します。

パラメーターの値は useUserOverride 、 プロパティの UseUserOverride 値になります。

たとえば、アラビア語 (サウジアラビア) が Windows の現在のカルチャであり、ユーザーがカレンダーをイスラム暦からグレゴリオ暦に変更したとします。

  • ( CultureInfo("0x0401", true) カルチャ名 ar-SA) Calendar を 使用すると、 が に GregorianCalendar 設定され (ユーザー設定)、 UseUserOverride が に true設定されます。

  • ( CultureInfo("0x0401", false) カルチャ名 ar-SA) Calendar を 使用すると、 が に HijriCalendar 設定され (ar-SA の既定のカレンダー) が に設定され UseUserOverride 、 が に false設定されます。

  • (カルチャ名 th-TH) を 使用CultureInfo("0x041E", true)すると、 が にThaiBuddhistCalendar設定され (th-TH の既定のカレンダー) が に設定されUseUserOverride、 が にtrue設定Calendarされます。

  • (カルチャ名 th-TH) を 使用CultureInfo("0x041E", false)すると、 が にThaiBuddhistCalendar設定され (th-TH の既定のカレンダー) が に設定されUseUserOverride、 が にfalse設定Calendarされます。

ユーロを使用するカルチャの場合、.NET Frameworkと Windows XP は既定の通貨をユーロに設定します。 ただし、古いバージョンの Windows ではできません。 したがって、古いバージョンの Windows のユーザーが、コントロール パネルの地域と言語のオプションの部分を通じて通貨設定を変更していない場合、通貨が正しくない可能性があります。 通貨の既定の設定.NET Framework使用するには、アプリケーションで パラメーターを useUserOverride に設定するfalse必要があります。

注意

下位互換性のために、0x0004 または 0x7c04 のパラメーターを使用して culture 構築されたカルチャには Name 、それぞれ zh-CHS または zh-CHT のプロパティがあります。 古い名前を使用する理由がない限り、代わりに、 または zh-Hant の現在の zh-Hans 標準カルチャ名を使用してカルチャを構築することをお勧めします。

注意 (呼び出し元)

.NET Framework 3.5 以前のバージョンでは、 が有効なカルチャ識別子でない場合cultureは がスローArgumentExceptionされます。 .NET Framework 4 以降、このコンストラクターは をCultureNotFoundExceptionスローします。 Windows 7 以降で .NET Framework 4 以降で実行されるアプリ以降では、オペレーティング システムから識別子cultureを持つオブジェクトを取得CultureInfoしようとします。オペレーティング システムがそのカルチャをサポートしていない場合、メソッドは例外をCultureNotFoundExceptionスローします。

.NET 6 以降のバージョンでは、 CultureNotFoundException グローバリゼーションインバリアント モードが有効になっている環境でアプリが実行されている場合 (たとえば、一部の Docker コンテナーや、インバリアント カルチャ以外のカルチャが指定されている場合)、 がスローされます。

こちらもご覧ください

適用対象

CultureInfo(String, Boolean)

名前で指定されたカルチャと、Windows からユーザーが選択したカルチャ設定を使用するかどうかを指定する値に基づいて、 クラスの新しいインスタンス CultureInfo を初期化します。

public:
 CultureInfo(System::String ^ name, bool useUserOverride);
public CultureInfo (string name, bool useUserOverride);
new System.Globalization.CultureInfo : string * bool -> System.Globalization.CultureInfo
Public Sub New (name As String, useUserOverride As Boolean)

パラメーター

name
String

定義済みの CultureInfo 名、既存の CultureInfoName、または Windows 専用カルチャ名。 name では、大文字と小文字は区別されません。

useUserOverride
Boolean

true ユーザーが選択したカルチャ設定を使用する場合 (Windows のみ)。 false 既定のカルチャ設定を使用する場合は 。

例外

name が null です。

name が有効なカルチャ名ではありません。 詳細については、「呼び出し時の注意」をご覧ください。

注釈

定義済みのカルチャ名の一覧については、Windows でサポートされている言語/地域名の一覧の言語タグ列を参照してください。 カルチャ名は、BCP 47 によって定義されている標準に準拠します。 また、Windows 10 以降では、name任意の有効な BCP-47 言語タグを指定できます。

String.Emptyの場合name、コンストラクターはインバリアント カルチャのインスタンスを作成します。これは、 プロパティのInvariantCulture値を取得することと同じです。

ユーザーは、コントロール パネルの地域と言語のオプションの部分を使用して、現在の Windows カルチャに関連付けられている値の一部をオーバーライドすることを選択できます。 たとえば、ユーザーは日付を別の形式で表示するか、カルチャの既定値以外の通貨を使用するかを選択できます。

アプリケーションでは通常、ユーザーのオーバーライドを禁止しないでください。 オーバーライドを禁止しても、データの安定性は保証されません。 詳細については、「 カルチャ データを安定と見なすべきではありません (インバリアントを除く)」のブログ エントリを参照してください。

プロパティが UseUserOverridetrue設定され、指定したカルチャ名に関連付けられているカルチャ識別子が現在の Windows カルチャのカルチャ識別子と一致する場合、このコンストラクターは、プロパティによって返されるインスタンスのプロパティのユーザー設定や、 プロパティによってDateTimeFormatNumberFormat返されるインスタンスのDateTimeFormatInfoNumberFormatInfoプロパティなど、これらのオーバーライドを使用する を作成CultureInfoします。 ユーザー設定が に関連付けられている CultureInfoカルチャと互換性がない場合 (たとえば、選択した予定表が の OptionalCalendars1 つではない場合)、メソッドの結果とプロパティの値は未定義です。

それ以外の場合、このコンストラクターは、指定したカルチャの既定値を使用する を作成 CultureInfo します。

パラメーターの値は useUserOverride 、 プロパティの UseUserOverride 値になります。

たとえば、アラビア語 (サウジアラビア) が Windows の現在のカルチャであり、ユーザーがカレンダーをイスラム暦からグレゴリオ暦に変更したとします。

LCID new CultureInfo の プロパティは、指定した名前に関連付けられているカルチャ識別子に設定されます。

ユーロを使用するカルチャの場合、.NET Frameworkと Windows XP は既定の通貨をユーロに設定します。 ただし、古いバージョンの Windows ではこれを行いません。 したがって、古いバージョンの Windows のユーザーが、コントロール パネルの地域と言語のオプションの部分を通じて通貨設定を変更していない場合、通貨が正しくない可能性があります。 通貨の既定の設定.NET Framework使用するには、アプリケーションで パラメーターを useUserOverride に設定するfalse必要があります。

注意 (呼び出し元)

.NET Framework 3.5 以前のバージョンでは、 が有効なカルチャ名でない場合nameは がスローArgumentExceptionされます。 .NET Framework 4 以降、このコンストラクターは をCultureNotFoundExceptionスローします。 Windows 7 以降で.NET Framework 4 以降で実行されるアプリ以降、メソッドはnameオペレーティング システムから識別子を持つオブジェクトの取得CultureInfoを試みます。オペレーティング システムがそのカルチャをサポートしていない場合、および が補助カルチャまたは置換カルチャの名前でない場合name、メソッドは例外をCultureNotFoundExceptionスローします。

.NET 6 以降のバージョンでは、 CultureNotFoundException グローバリゼーションインバリアント モードが有効になっている環境でアプリが実行されている場合 (たとえば、一部の Docker コンテナーや、インバリアント カルチャ以外のカルチャが指定されている場合)、 がスローされます。

こちらもご覧ください

適用対象