共用方式為


使用 CurrentCulture 屬性

CultureInfo.CurrentCulture 屬性是個別執行緒設定,它可決定日期、時間、貨幣和數字、文字排序次序、字串比較和大小寫的預設格式。CurrentCulture 屬性並非語言設定。它只包含與地理區域之標準設定相關的資料。因此,CurrentCulture 屬性只可以設定為特定文化特性或 InvariantCulture。您可以使用 Thread.CurrentThread 屬性來設定 CurrentCulture。如需詳細資訊,請參閱這個主題中稍後提供的範例。

Note注意事項

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

明確設定 CurrentCulture 屬性

您可以明確地在程式碼中設定 CurrentCulture 屬性。下列程式碼範例設定 CurrentCulture 屬性為特定文化特性 "de-DE" 德國的德文。

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

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

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

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
Note注意事項

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

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

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 所提供指定文化特性的貨幣、數值、日期和時間預設格式,您可以在應用程式的程式碼中覆寫 [使用者地區設定] 預設值。使用其中一個接受 useUserOverride 參數的建構函式多載,並將這個參數設定為 false,建立 CultureInfo 物件。這樣將使得 .NET Framework 的預設值覆寫使用者系統的預設值值。用歐元格式化歐盟 (European Union,EU) 成員貿易的貨幣時,建議您將 useUserOverride 參數設定為 false,以確定使用正確的貨幣符號。如需詳細資訊,請參閱格式化特定文化特性的數值資料主題中的<格式化歐盟的貨幣>副標題。

請參閱

參考

CultureInfo.CurrentCulture Property

概念

使用 CurrentUICulture 屬性
使用 InvariantCulture 屬性

其他資源

編碼和當地語系化