我在爲用戶找到正確的DateTimeFormatter時遇到了一些麻煩。WinRT - 如何根據用戶文化獲取正確的DateTimeFormatter
當日期轉換爲字符串,例如用
.ToString("D");
總是EN-US區域性在WinRT中使用。
我發現應該使用新的全球化應用。
例如
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格式。
可以告訴我什麼是根據用戶的文化(這也通過uid自動用於資源本地化)獲取DateTimeFormatter的正確方法是什麼?
'ToString(String)'使用「當前」文化。你是否在說,如果你改變爲en-us以外的東西,'ToString'仍然會格式化爲en-us? – 2013-02-23 17:51:28
嗯我不改變它,但我希望文化是德DE,因爲ists德國電腦沒有任何額外的語言。但你的權利,文化是en-us。那麼爲什麼不會贏得尊重併爲之樹立文化呢?所以我需要以其他方式獲得用戶文化? – 2013-02-23 18:54:03