簡體   English   中英

CultureInfo(“fr-BE”) 在 Windows 8.1 上與以前不同

[英]CultureInfo(“fr-BE”) different on Windows 8.1 than before

我為 .NET Web 應用程序設置了文化,以便對數字、貨幣和日期使用特定格式:

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-BE");

在帶有 IIS 7 的 Windows 2008 服務器機器上,我得到“d/m/yy”作為短日期格式(我想要的)。 在我的(新)Windows 8.1 pro 機器(開發者和測試者)上,我得到了相同 CultureInfo 的“dm-yy”格式......“dash”而不是“slash”分隔符。

我也檢查了控制面板 - >區域和法語(比利時)的設置如上所述,W2k8服務器與W8.1pro不同......

.NET 版本是 4,沒問題。 固定文化無濟於事,就我需要在 UI 中顯示特定文化而言,問題就在那里。 確實,Windows 8 帶來了變化......最后我用來覆蓋線程文化的一些設置,比如日期分隔符:

DateTimeFormatInfo dtfi = Thread.CurrentThread.CurrentCulture.DateTimeFormat; if (dtfi.DateSeparator != "/") dtfi.DateSeparator = "/";

這確保斜杠將始終是當前線程中的日期分隔符。

謝謝你。 有人知道嗎? 比利時改了國家標准? 或者,微軟為他們做了什么? 任何的想法? 謝謝。

感謝您的回答。 .NET 版本是 4,沒問題。 固定文化無濟於事,就我需要在 UI 中顯示特定文化而言,問題就在那里。 確實,Windows 8 帶來了變化......最后我用來覆蓋線程文化的一些設置,比如日期分隔符: DateTimeFormatInfo dtfi = Thread.CurrentThread.CurrentCulture.DateTimeFormat; if (dtfi.DateSeparator != "/") dtfi.DateSeparator = "/";

這確保斜杠將始終是當前線程中的日期分隔符。

謝謝你。

我正在查看 CultureInfo 'en-NZ' 的類似問題,因為它在不同的 Windows 版本中針對相同的文化設置進行了更改,並且導致我的 Web 服務為相同的 CultureInfo 保存了不同的字符串,結果證明它是由 Windows 提供的從 .Net Framework 4 開始,在此之前是 Windows 和 .Net 的組合。

幸運的是,我可以使用 Microsoft 推薦的不變文化,以確保我保存到數據庫中的字符串不會因 Windows 或未來的 .Net Framework 更新而更改。 問題是,就我而言, AM\\PMDesignatoram\\pm更改為AM\\PM ,並且不變文化將確保它保存到AM\\PM我認為它將來不會改變,但如果我想要它保存到am\\pm因為它是舊版本的 Windows,不變文化將無法做到這一點,我可能需要定義我自己的自定義文化或像你一樣覆蓋當前的文化。

請參閱有關 Microsoft 指定 CultureInof are subject to change without notice另一個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM