【保存版】C#で日時を自在にフォーマットする方法|DateTime.ToStringの使い方と書式一覧

その他

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
mm45
ss00
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形式・日本語形式・ファイル名形式などが便利

コメント

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