如何获取 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;

但是 installedcurrentUi 总是 '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。 在这种情况下,无需关闭并重新打开程序。