C#でアプリやツールを開発していて、「ログ出力や画面表示の日時をもっと見やすく整えたい」と感じたことはありませんか?
DateTime.Now
で取得できる現在時刻は便利ですが、そのままでは可読性が低いことがありますよね。
今回は、C#で日時を自由にフォーマットするための方法を、初心者向けにわかりやすく解説します。
現在日時の取得と基本フォーマット

まず、C#で現在の日時を取得するにはDateTime.Now
を使います。
DateTime now = DateTime.Now;
Console.WriteLine(now); // 例:2025/05/22 18:45:00
このままでは文化圏によって表示が変わってしまうため、明示的に書式を指定するのがベストです。
ToString()で日時をフォーマットする方法
C#では、DateTime.ToString()
メソッドに書式文字列を渡すことで、日時を好きな形で整形できます。
例:年月日+時刻のフォーマット
DateTime now = DateTime.Now;
string formatted = now.ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine(formatted); // 出力例:2025-05-22 18:45:00
これで、見やすい形式の日時が表示されるようになります。
よく使う日時フォーマット一覧
書式文字列の組み合わせで、様々な表示ができます。
書式文字列 | 意味 | 出力例 |
---|---|---|
yyyy | 年(4桁) | 2025 |
yy | 年(下2桁) | 25 |
MM | 月(2桁) | 05 |
dd | 日(2桁) | 22 |
HH | 時(24時間制) | 18 |
hh | 時(12時間制) | 06 |
mm | 分 | 45 |
ss | 秒 | 00 |
fff | ミリ秒(3桁) | 123 |
ddd | 曜日(省略) | Thu |
dddd | 曜日(全表示) | Thursday |
この表を参考にすれば、必要な形式がすぐに作れますね。
ロケールに依存しない表示方法(ISO形式など)

国や環境によって表示が変わるのを防ぐには、ISO 8601形式などの明示的な書式を使いましょう。
string iso = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss");
Console.WriteLine(iso); // 例:2025-05-22T18:45:00
この形式は国際標準なので、どの環境でも同じように表示されます。
DateTime.Parseとの併用で文字列→日時も自由自在
逆に、文字列から日時に変換することもできます。
string input = "2025-05-22 18:45:00";
DateTime parsed = DateTime.ParseExact(input, "yyyy-MM-dd HH:mm:ss", null);
Console.WriteLine(parsed); // DateTimeオブジェクトとして扱える
ParseExact
を使えば、文字列から特定のフォーマットでDateTimeへ変換できるんです。とても便利ですね。
カスタムフォーマットの活用例
実際の開発でよく使うパターンを紹介します。
ファイル名に使える形式
string filename = DateTime.Now.ToString("yyyyMMdd_HHmmss");
Console.WriteLine(filename); // 例:20250522_184500
日本語表記
string japanese = DateTime.Now.ToString("yyyy年MM月dd日 HH時mm分ss秒");
Console.WriteLine(japanese); // 例:2025年05月22日 18時45分00秒
用途に合わせて使い分けると、とても便利です。
まとめ:C#の日時はフォーマット次第で見やすくなる!
C#では、DateTime.ToString()
と書式文字列を使うだけで、視認性の高い日時表示が簡単に実現できます。
また、ParseExact
で逆変換もできるため、入出力処理やログ記録にも柔軟に対応できるんです。
今日のまとめ
DateTime.ToString("フォーマット")
で自由な表示が可能- 書式指定子を覚えておけば、どんな表示にも対応できる
ParseExact
で文字列→日時変換もできる- 実務ではISO形式・日本語形式・ファイル名形式などが便利
コメント