はじめに
Windows Forms の DateTimePicker では、
画面上にどのような形式で日付や時刻を表示するかを制御するために、
Format と CustomFormat という2つのプロパティが使われます。
💡 一言でまとめると
- Format … 表示形式の「種類」を選ぶ
- CustomFormat … 表示形式を「自分で書く」
Format プロパティとは?
日付・時刻の“表示形式の種類”を決めるプロパティです。
| Format の値 | 説明 | 例 |
|---|---|---|
DateTimePickerFormat.Short |
短い日付形式 | 2025/11/24 |
DateTimePickerFormat.Long |
長い日付形式 | 2025年11月24日 月曜日 |
DateTimePickerFormat.Time |
時刻だけを表示 | 13:25 |
DateTimePickerFormat.Custom |
独自の書式を使う | 後述 |
基本的な設定例
// 短い日付形式で表示
dateTimePicker1.Format = DateTimePickerFormat.Short;
// 長い日付形式
dateTimePicker1.Format = DateTimePickerFormat.Long;
// 時刻のみ
dateTimePicker1.Format = DateTimePickerFormat.Time;
CustomFormat プロパティとは?
Format を Custom にしたとき、
任意の書式文字列で日付・時刻を表示できるのが CustomFormat です。
CustomFormat を使う準備
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "yyyy/MM/dd";
これで「2025/11/24」のように自由な形式で表示できます。
CustomFormat で使える主な書式一覧
| 書式 | 表示例 | 説明 |
|---|---|---|
| yyyy | 2025 | 西暦(4桁) |
| yy | 25 | 西暦(2桁) |
| MM | 11 | 月(2桁) |
| MMM | Nov | 月の省略名 |
| dddd | 月曜日 | 曜日(完全形式) |
| ddd | 月 | 曜日の短縮名 |
| HH | 14 | 24時間制の時 |
| hh | 02 | 12時間制の時 |
| mm | 05 | 分 |
| ss | 09 | 秒 |
📝 CustomFormat の書式は、DateTime.ToString() と同じ書式指定子が使えます。
CustomFormat の実例いろいろ
日付 + 時刻
dateTimePicker1.CustomFormat = "yyyy/MM/dd HH:mm";
表示例:
2025/11/24 13:45
曜日入り
dateTimePicker1.CustomFormat = "yyyy/MM/dd (ddd)";
表示例:
2025/11/24 (月)
和風のフォーマット
dateTimePicker1.CustomFormat = "yyyy年MM月dd日 dddd";
表示例:
2025年11月24日 月曜日
時刻入力用(UpDown)
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "HH:mm";
dateTimePicker1.ShowUpDown = true;
Format と CustomFormat の関係まとめ
Format プロパティは以下のように切り替わります:
- Format = Custom のときだけ CustomFormat が有効
- Short / Long / Time のとき CustomFormat は無視される
- CustomFormat の書式は自由に作れるので UI の見栄えを整えやすい
実用例:選択した日付を DB 用フォーマットに変換
// 画面上
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "yyyy/MM/dd";
// 保存時
string dbDate = dateTimePicker1.Value.ToString("yyyy-MM-dd");
画面と内部データのフォーマットを分けて扱えるのが便利です。
よくあるハマりポイント
- CustomFormat を設定しても反映されない
→ Format がCustomになっていない可能性があります。 - 表示は変えても値は変わらない
→ CustomFormat は見た目だけで、Value プロパティの DateTime 値は常に保持されています。 - 時刻入力でスピン形式にしたい
→ShowUpDown = trueを忘れがち!
まとめ
- Format は表示方法の種類を選ぶプロパティ。
- CustomFormat は Format = Custom のときだけ有効。
- CustomFormat を使うと UI の表現が自由になり、ユーザーが読みやすい日付になる。
- Value は DateTime のまま保持され、見た目と中身を分けて設計できる。
日付入力まわりはアプリの「使いやすさ」が大きく変わる部分です。
まずは CustomFormat を活用して、読みやすくて直感的な DateTimePicker を作ってみてくださいね。
Please follow and like us:
コメント