4

私のマシンには英語の Windows 7 がインストールされており、選択されたデフォルトの言語は英語です (「地域と言語の設定」を使用)。DateTimeFormat.ShortDatePattern次のC#ステートメントを使用して読んだとき:

System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern

こんな結果になりました

"M/d/yyyy"

私もこのステートメントを試しましたが、それでも同じ文字列が得られました。

System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.ShortDatePattern  
"M/d/yyyy"

しかし、今は「地域と言語の設定」から言語を変更し、デンマーク語を選択しました。ここで、[形式] タブに切り替えて、短い日付形式で"M/d/åååå"、デンマーク語にローカライズされたものを表示します。これは、言語を変更すると、日時の形式も変更されることを意味します。

ただし、私のアプリケーションでは、ロードされた CurrentUICulture が正しい、つまりデンマーク語の da-DK であっても、上記の英語の書式文字列を取得します。地域設定に示されているように、ローカライズされた ShortDateFormat を表示したいと考えています。自分でローカリゼーションを行う必要がありますか、それともそれを行うためのビルドはありますか? ここで何か不足している場合はお知らせください。

編集:この情報は、ピーターとの議論に基づいて質問をさらに明確にするために追加されています。

Format コンボボックスには、Danish(Denmark) と表示されます。形式はデンマーク語などで正しく読み取られますが、文字列は M/d/åååå ではなく M/d/yyyy と表示されます。これは、DatePicker コントロールに表示したい正確な文字列 M/d/åååå です。つまり、透かしはローカライズされた ShortDatePattern を表示する必要があります。まだまだ苦戦中…

4

2 に答える 2

0

CurrentUICulture ではなく、CurrentCulture を設定してみてください。例えば:

Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");

CurrentUICulture は、アプリケーションが必要とするリソースを指定します。

CultureInfo は、日付、時刻、数値、通貨値、テキストの並べ替え順序、大文字と小文字の規則、および文字列比較の既定の形式を指定しており、必要なものです。

于 2013-01-17T23:13:43.150 に答える