我在使用英國區域設置安裝在英國服務器上的c#程序集(.net 2.0使用Visual Studio 2005編寫)時遇到問題。系統區域設置/文化設置爲.Net
我的代碼的作用是將dd/MM/yyyy格式的日期轉換爲utc。即yyyy-mm-dd。問題出現在日期如16/02/2010組件未能轉換日期並返回錯誤。調試後,我意識到,出於一個奇怪的原因,由System.CultureInfo返回的CultureInfo是en-US。
我可以用編程方式更改這些設置:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB", false);
和我的代碼工作正常。
但是我不想一直這麼做,因爲我的系統應該是英國的。不是我們。 那麼,如何將.Net框架的默認文化更改爲默認的en-GB而不是en-US?
的信息:
- 我試圖更新machine.config文件和全球化節指定文化= EN-GB(它被設定爲中性),但它不工作,要麼[有做了1.1和2.0],但可能我沒有正確改變它。
- 我已驗證我的Windows區域設置,並且他們肯定設置爲英國,日期爲dd/MM/yyyy
- 我正在虛擬服務器中運行並驗證了我的主機系統。它也被設置爲英國
編輯:
有關上下文的額外細節的位。正在討論的程序集正在通過COM interop從本地C++第三方組件作爲COM +應用程序運行。
如果問題來自C++/COM環境或操作系統,可能很有趣。如果你只是想用一個簡單的控制檯應用程序 Console.WriteLine(Thread.CurrentThread.CurrentCulture.DisplayName); 它顯示了什麼? – HackerBaloo 2010-02-18 12:59:05