【C#】DateTimeで日付・時刻を扱う方法

C# で日付や時刻を扱う際には DateTime 構造体を利用します。DateTime を使うことで現在日時の取得、日付の計算、文字列への変換などが簡単に行えます。本記事では DateTime の基本的な使い方を解説します。

現在の日時を取得する

現在の日時を取得するには DateTime.Now を使います。UTC(協定世界時)が必要な場合は DateTime.UtcNow を利用します。

using System;

class Program
{
    static void Main()
    {
        DateTime now = DateTime.Now;
        Console.WriteLine(now);          // 現在のローカル日時
        Console.WriteLine(DateTime.UtcNow); // 現在のUTC日時
    }
}

特定の日付を生成する

年・月・日を指定して DateTime オブジェクトを生成できます。時刻まで指定することも可能です。

DateTime date1 = new DateTime(2025, 8, 28);
DateTime date2 = new DateTime(2025, 8, 28, 14, 30, 0);

Console.WriteLine(date1); // 2025/08/28 0:00:00
Console.WriteLine(date2); // 2025/08/28 14:30:00

日付や時刻の要素を取得する

DateTime から年・月・日・時刻の情報を取り出せます。

DateTime now = DateTime.Now;

Console.WriteLine(now.Year);   // 年
Console.WriteLine(now.Month);  // 月
Console.WriteLine(now.Day);    // 日
Console.WriteLine(now.Hour);   // 時
Console.WriteLine(now.Minute); // 分
Console.WriteLine(now.Second); // 秒

日付の計算

AddDaysAddMonths を使うことで、日付を簡単に計算できます。

DateTime today = DateTime.Today;

DateTime tomorrow = today.AddDays(1);
DateTime nextMonth = today.AddMonths(1);

Console.WriteLine(tomorrow);   // 翌日
Console.WriteLine(nextMonth);  // 翌月

文字列への変換とフォーマット

ToString に書式を指定すると、好きな形で日付や時刻を文字列に変換できます。

DateTime now = DateTime.Now;

Console.WriteLine(now.ToString("yyyy/MM/dd"));   // 2025/08/28
Console.WriteLine(now.ToString("HH:mm:ss"));     // 14:35:20
Console.WriteLine(now.ToString("yyyy年MM月dd日 HH時mm分")); // 日本語フォーマット

日付の比較

DateTime は比較演算子を使って大小関係を判定できます。

DateTime d1 = new DateTime(2025, 8, 28);
DateTime d2 = new DateTime(2025, 9, 1);

if (d1 < d2)
{
    Console.WriteLine("d1 は d2 より前の日付です");
}

まとめ

C# の DateTime を使えば、日付や時刻に関する処理を簡単に行えます。

  • DateTime.Now で現在日時を取得
  • コンストラクタで特定の日付・時刻を生成
  • プロパティで年月日時分秒を取得
  • AddDaysAddMonths で日付計算
  • ToString で自由なフォーマットに変換

日付や時刻は多くのアプリケーションで不可欠な要素です。DateTime の基本を理解することで、スケジュール管理やログ処理などに応用できるようになります。