技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

C#・WPF:DatePickerの日付フォーマットを変更する

DatePickerのSelectedDateFormatプロパティで表示される日付のフォーマットを変更できます。
Longを指定するとToLongDateString()メソッドの戻り値、Shortを指定するとToShortDateString()メソッドの戻り値が表示されます。
 
更に、ToLongDateString()メソッドやToShortDateString()メソッドは、現在のスレッドで適用されているCultureInfoのプロパティを変更することで、戻り値のフォーマットを変更することができます。
例えば、"YYYY-MM-DD"のフォーマットにしたい場合は、コンストラクタ等で以下の処理を行うことで、フォーマット変更することができます。
 
// 独自のCultureInfoを生成
CultureInfo originalCulture = new CultureInfo("ja-JP", true);
// ToShortDateString()メソッドで使用する日付の区切り文字
originalCulture.DateTimeFormat.DateSeparator = "-";
// ToLongDateString()メソッドの戻り値のフォーマット
originalCulture.DateTimeFormat.LongDatePattern = "yyyy'-'MM'-'dd";
// 独自のCultureInfoを現在のメソッドのCultureInfoとして適用
Thread.CurrentThread.CurrentCulture = originalCulture;