2016-07-05 19 views
3

私はWindows 10 Mobile用のUWPアプリを持っています。アプリは現在、英語(en-US)とチェコ語(cs-CZ)の2つの言語を提供しています。実際のシステムカルチャ情報を取得

DateTime.Now.ToString("d", System.Globalization.CultureInfo.CurrentCulture); 
DateTime.Now.ToString("d", System.Globalization.CultureInfo.CurrentUICulture); 
DateTime.Now.ToString(System.Globalization.DateTimeFormatInfo.CurrentInfo.ShortDatePattern); 

私が何とかしたいと思います:私がいる問題は、スペインから例えば、ユーザーがアプリを使用する場合、日付と時刻の形式は、(デフォルトのアプリの言語がen-USある)スペイン語、アメリカ人ではないということですACTUALシステム言語を入手して、電話言語に基づいて正しい形式で日付と時刻を取得します。現在、System.Globalization名前空間のすべてのAPIが、アプリが使用しているカルチャー情報を返すようです。

答えて

3

は、より多くの検索後、私は、次の質問に遭遇するために管理してきました:

Windows.System.UserProfile.GlobalizationPreferences.Languages[0] 

これはからの最初の言語の言語の文字列を返します。質問の著者は、次のAPI呼び出しを言及Date Time formatting in Windows 10 Universals (Store) Appsユーザのシステム設定言語リスト。

DateTime.Now.ToString("d", new System.Globalization.CultureInfo(Windows.System.UserProfile.GlobalizationPreferences.Languages[0])); 
+1

これは好みの言語と優先ロケールが同じではないシステム上で失敗し、次の方法でそれを使用して

は私に期待される結果を提供します。ユーザの好みの日付と時刻のフォーマットではなく、ユーザの好みの言語に基づいて 'CultureInfo'オブジェクトを構築しています。 – IInspectable

+0

@IInspectableご利用いただきありがとうございます!私はいくつかの研究をしましたが、残念ながら、そのためのAPIは存在していないようです。さらに、UWPの「DatePicker」と「TimePicker」でも、優先フォーマットではなく、最初のシステム言語に基づくフォーマットが使用されます。したがって、これは残りのシステム動作と一貫しています。 –

+0

しかし、一部のアプリケーションでは地域の設定が正しく行われます。私はUWP開発では、(まだ隠れている)専用のAPIがあるかどうか、あるいはそれらのアプリケーションが目的の地域設定を評価/推測するための長さになっているかどうかを知るには十分な知識がありません。 – IInspectable

関連する問題