ユーザーに適した 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 を介したリソースのローカリゼーションにも自動的に使用されます)。