使用 CurrentCulture 屬性
更新:2007 年 11 月
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 網頁明確設定 CurrentUICulture 屬性
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]);
如需使用和擷取 ASP.NET 應用程式中資源的詳細資訊,請參閱 ASP.NET 應用程式中的資源。
隱含設定 CurrentCulture 屬性
在 Windows 作業系統中,GetUserDefaultLCID 函式會設定 CurrentCulture 屬性。使用者可以透過 [控制台] 中的地區和語言選項變更使用者文化特性,或藉由變更與使用者地區設定相關的設定 (例如貨幣、數值、日期和時間格式) 來變更這個屬性設定。
如果您想要確保應用程式能夠使用 .NET Framework 所提供指定文化特性的貨幣、數值、日期和時間預設格式,請讓應用程式覆寫使用者地區設定預設值。應用程式應會使用接受 useUserOverride 參數的建構函式多載,並將這個參數設為 false,來建立 CultureInfo 物件。利用這個方式,將會讓 .NET Framework 的預設設定覆寫使用者作業系統上的預設設定。用歐元格式化歐盟 (European Union,EU) 成員貿易的貨幣時,建議您的應用程式將 useUserOverride 參數設定為 false,以確定使用正確的貨幣符號。如需詳細資訊,請參閱格式化特定文化特性的數值資料主題中的<格式化歐盟的貨幣>副標題。