使用 CurrentCulture 屬性

CurrentCulture 屬性代表個別執行緒的目前文化特性資訊。 這項資訊會決定日期、時間、貨幣和數字、文字排序次序、字串比較和大小寫的預設格式。 透過這個屬性所做的設定不是語言設定。 這個屬性只會定義與地區標準設定相關的資料。 因此,您的應用程式只能將 CurrentCulture 設為特定文化特性或 InvariantCulture。 應用程式可以使用 CurrentThread 屬性來設定 CurrentCulture

注意

變更 CurrentThread 的文化特性時,需要 SecurityPermission 物件並設定 ControlThread。因為安全狀態與執行緒息息相關,操作執行緒會很危險。因此,這個使用權限應該只能指定給可靠的程式碼,而且也只有在必要的時候。您不可以在非完全信任程式碼中變更執行緒的文化特性。

明確設定 CurrentCulture 屬性

您的應用程式可以明確設定 CurrentCulture 屬性。 下列程式碼範例會將屬性設為指定為 "de-DE" 的德文 (德國) 特定文化特性。

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

您的應用程式必須使用指定文化特性來初始化 CurrentCulture 屬性。 這個屬性預期使用同時與語言和國家/地區相關的文化特性,例如指定為 "en-US" 的英文 (美國)。 通常一個語言會在一個以上的國家或地區中使用,因此必須使用區域資訊來決定適合使用的格式化慣例。 例如,如果您的應用程式指定文化特性 "en" 為中性英文,則日期或貨幣格式不會有單一的正確設定。 日期可能是美國制或英國制。 而貨幣可能是紐西蘭格式或加拿大格式。 如果應用程式嘗試指定中性文化特性來設定 CurrentCulture 屬性,將會擲回例外狀況。

如果您只能存取中性文化特性,可以使用 CreateSpecificCulture 方法,將 CultureInfo 物件建立為 CurrentCulture 預期的格式。 這個方法會對應中性文化特性到相關的預設特定文化特性,然後建立代表該特定文化特性的 CultureInfo 物件。 下列程式碼範例會使用 CreateSpecificCulture 方法,將德文 ("de") 中性文化特性對應到指定為 "de-DE" 的德文 (德國) 特定文化特性。 此範例接著會為 "de-DE" 建立 CultureInfo 物件,並使用它來初始化 CurrentCulture 屬性的值。

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");

注意

這個方法是一個選擇項目。如果它所提供的對應不適用於您的應用程式,應用程式可以使用自己的對應。

在 .aspx 網頁明確設定 CurrentCulture 屬性

CreateSpecificCulture 方法也允許您的應用程式使用 Web 瀏覽器的目前語言,在 .aspx 網頁中初始化 CurrentCulture 屬性。 下列程式碼範例中,UserLanguages 屬性會將 Web 瀏覽器的目前語言擷取成字串。 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]);

隱含設定 CurrentCulture 屬性

在 Windows 作業系統中,GetUserDefaultLCID 函式會設定 CurrentCulture 屬性。 使用者可以透過 [控制台] 中的地區和語言選項變更使用者文化特性,或藉由變更與使用者地區設定相關的設定 (例如貨幣、數值、日期和時間格式) 來變更這個屬性設定。

如果您想要確保應用程式能夠使用 .NET Framework 所提供指定文化特性的貨幣、數值、日期和時間預設格式,請讓應用程式覆寫使用者地區設定預設值。 應用程式應會使用接受 useUserOverride 參數的建構函式多載,並將這個參數設為 false,來建立 CultureInfo 物件。 利用這個方式,將會讓 .NET Framework 的預設設定覆寫使用者作業系統上的預設設定。 用歐元格式化歐盟 (European Union,EU) 成員貿易的貨幣時,建議您的應用程式將 useUserOverride 參數設定為 false,以確定使用正確的貨幣符號。

請參閱

參考

System.Globalization.CultureInfo

CurrentCulture

CurrentUICulture

概念

使用 CultureInfo 類別

使用 InvariantCulture 屬性