我在为用户找到正确的 DateTimeFormatter 时遇到了一些麻烦。
例如,将日期转换为字符串时
.ToString("D");
WinRT 中始终使用 en-US 区域性。
我发现应该使用新的全球化 API。
例如
var langs = Windows.System.UserProfile.GlobalizationPreferences.Languages;
var homeregion = Windows.System.UserProfile.GlobalizationPreferences.HomeGeographicRegion;
Windows.Globalization.DateTimeFormatting.DateTimeFormatter dtf = new DateTimeFormatter(homeregion);
但是 HomeGeographicRegion 的结果不是具有新 DateTimeformatter 要求的格式
我也试过这个
var formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter(Windows.Globalization.DateTimeFormatting.YearFormat.Default,
Windows.Globalization.DateTimeFormatting.MonthFormat.Abbreviated,
Windows.Globalization.DateTimeFormatting.DayFormat.Default,
Windows.Globalization.DateTimeFormatting.DayOfWeekFormat.Default);
string result = formatter.Format(Date);
但这也只返回 en-Us 格式的日期字符串。
谁能告诉我根据用户文化获取 DateTimeFormatter 的正确方法是什么(这也通过 uid 自动用于资源本地化)?