我想根据"区域格式"格式化日期和数字。设置在Windows 10中配置的用户。使用WPF,这没有问题。有了UWP,这似乎是不可能的,如果不诉诸黑客。
Sample code to experiment with
我盯着一个新问题,因为最好的similar one是3岁而没有接受答案。
"区域格式"是一个Windows设置,用户可以独立于语言和区域进行配置。例如。用户可以配置:
MS似乎希望我们使用UserProfile.GlobalizationPreferences,但这不会公开活动的"区域格式"。有MS声明 " 这是故意的。微软正逐渐迫使应用程序采用操作系统的语言...... "在上面提到的问题中。我们在使用与操作系统不同的语言创建应用程序时从未遇到过问题。这并没有解释如何在UWP应用中尊重用户选择。
我阅读了我能找到的关于此的所有帖子,唯一的解决方案似乎是以下描述的here:
var systemLanguage = GlobalizationPreferences.Languages.First();
var regionInfo = new RegionInfo(systemLanguage);
var dtf = new DateTimeFormatter("longdate", new[] { regionInfo.TwoLetterISORegionName });
var regionInfoName = dtf.ResolvedLanguage;
var regionFormatCultureInfo = new CultureInfo(regionInfoName);
MS似乎建议对我不起作用,我的客户抱怨我的应用不尊重他们的设置。
有人可以对此有所了解吗?如果这是一个SDK错误,它应该很久以前就已修复。
内置的Calendar UWP应用程序确实遵循区域格式。