[C#][Windows Formsアプリ][DateTimePicker] Format/CustomFormatプロパティで日付や時刻の表示形式を設定する

スポンサーリンク

はじめに

Windows Forms の DateTimePicker では、
画面上にどのような形式で日付や時刻を表示するかを制御するために、
FormatCustomFormat という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:

コメント

タイトルとURLをコピーしました