私が知っているこの記事によると、DateTimePickerコントロールはCurrentUICultureを反映していません。では、使用している実際の
カルチャ
を取得するにはどうすればよいですか?多言語アプリケーションでDateTimePickerの文字列値を取得するために必要ですが、ユーザーがフォームに表示するのとまったく同じ形式です(いいえ、「ハードコード」カスタム形式を設定できません)。
例:
ネイティブのポーランド語設定を使用してWindowsで作業している場合、LongTimeの場合は次のようになります。HH :mm:ssおよびDateTimePickerの時刻は次のように表示されます: 09:26:50
ここで、アプリケーションで別の言語を選択し、フォームのコンストラクターでカルチャ設定をUSに変更する場合:
...
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
InitializeComponent();
....
それから
MessageBox.Show(System.Globalization.DateTimeFormatInfo.CurrentInfo.LongTimePattern);
は、新しい時刻形式が次のとおりであることを示しています:h:mm:ss tt、それでもDateTimePickerはまだ表示されています:09 :26:50
次のような時間文字列を取得しようとすると、次のようになります。
dateTimePicker1.Value.ToLongTimeString()
また
dateTimePicker1.Value.ToString(System.Globalization.DateTimeFormatInfo.CurrentInfo.LongTimePattern)
その後、時刻は次のように表示されます:9:26: 50 AM
だから私の質問は-DateTimePickerがまだシステムのCultureInfo( "pl-PL")を使用していること、またはその表示形式がHH:mm:ssであることをどうやって知ることができますか?