如何获取 Windows 区域格式?
How to get Windows region format?
在 Windows 的控制面板中有一个组合框,我们可以在其中更改区域格式 (controlPanel => Region => Formats (windows 10))。例如波斯语或英语
我想在我的应用程序中检索此区域设置。
我试过这样的代码:
CultureInfo ci = CultureInfo.InstalledUICulture;
var installed = ci.Name;
ci = CultureInfo.CurrentUICulture;
var currentUi = ci.Name;
ci = CultureInfo.CurrentCulture;
var current = ci.Name;
但是 installed
和 currentUi
总是 'en-US' 而 current
总是 'fa-IR'
当我在控制面板中更改格式时,它们不会更改。
我使用了这个代码。
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(s => ((State)s).Result = Thread.CurrentThread.CurrentCulture);
var state = new State();
thread.Start(state);
thread.Join();
var culture = state.Result;
然后我们使用culture.Name
。
在这种情况下,无需关闭并重新打开程序。
在 Windows 的控制面板中有一个组合框,我们可以在其中更改区域格式 (controlPanel => Region => Formats (windows 10))。例如波斯语或英语
我想在我的应用程序中检索此区域设置。
我试过这样的代码:
CultureInfo ci = CultureInfo.InstalledUICulture;
var installed = ci.Name;
ci = CultureInfo.CurrentUICulture;
var currentUi = ci.Name;
ci = CultureInfo.CurrentCulture;
var current = ci.Name;
但是 installed
和 currentUi
总是 'en-US' 而 current
总是 'fa-IR'
当我在控制面板中更改格式时,它们不会更改。
我使用了这个代码。
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(s => ((State)s).Result = Thread.CurrentThread.CurrentCulture);
var state = new State();
thread.Start(state);
thread.Join();
var culture = state.Result;
然后我们使用culture.Name
。
在这种情况下,无需关闭并重新打开程序。