0Pricing
C# Academy · レッスン

DateTimeを作成する

Now、Today、特定の日付を扱います。

「DateTimeを作成する」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全4レッスンが含まれています。

DateTime を使う

C# では、DateTime 構造体が日付と時刻の両方を含む、時点を表します。

System 名前空間にあるため、すべてのプログラムで利用できます。誕生日、タイムスタンプ、締め切りなどに使用します。

DateTime 値には、年、月、日、時、分、秒、さらには秒の小数部分まで保持されます。

DateTime.Now

現在の日付と時刻を取得する最も簡単な方法は、DateTime.Now です。コンピューターのローカル時計を読み取ります。

呼び出すたびに、その時点の新しいスナップショットを取得します。実行するタイミングによって結果が変わるため、出力される値は毎回異なります。

using System;

class Program
{
    static void Main()
    {
        DateTime now = DateTime.Now;
        Console.WriteLine(now);
    }
}

今日の日付

時刻ではなく日付だけが必要な場合は、DateTime.Today を使います。現在の日の午前 0 時(00:00:00)が返されます。

時刻部分が 0 に設定されるため、日付同士を比較する場合に便利です。

using System;

class Program
{
    static void Main()
    {
        DateTime today = DateTime.Today;
        Console.WriteLine(today.Year);
    }
}

UTC 時刻

世界中のコンピューターは UTC(協定世界時)を共有しています。DateTime.UtcNow を使うと、現地のタイムゾーンに依存しない、UTC の現在時刻を取得できます。

UTC は、サーバーや、複数の地域で読み取るタイムスタンプを保存する場合に適しています。

using System;

class Program
{
    static void Main()
    {
        DateTime utc = DateTime.UtcNow;
        Console.WriteLine(utc.Kind);
    }
}

特定の日付を作成する

正確な日付を作成するには、コンストラクター new DateTime(year, month, day) を使います。時刻部分は午前 0 時が既定値になります。

祝日やリリース日など、固定された日付に最適です。値が固定されているため、出力を完全に予測できます。

using System;

class Program
{
    static void Main()
    {
        DateTime launch = new DateTime(2024, 1, 15);
        Console.WriteLine(launch.ToString("yyyy-MM-dd"));
    }
}

時刻を追加する

より長いコンストラクターを使うと、時、分、秒を設定できます。new DateTime(year, month, day, hour, minute, second)

時は 24 時間制で指定するため、14 は午後 2 時を意味します。これにより、秒単位まで含む完全なタイムスタンプを作成できます。

using System;

class Program
{
    static void Main()
    {
        DateTime meeting = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(meeting);
    }
}

各要素を読み取る

DateTime を取得したら、Year、Month、Day、Hour、Minute、Second の各プロパティから、それぞれの要素を読み取れます。

これらは通常の整数を返すため、簡単に出力したり比較したりできます。

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.Month);
        Console.WriteLine(d.Hour);
    }
}

曜日

DayOfWeek プロパティは、日付が何曜日に当たるかを示します。Monday や Saturday など、DayOfWeek 列挙型の値を返します。

DayOfYear もあり、1 から 366 までの整数を返します。

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 1, 1);
        Console.WriteLine(d.DayOfWeek);
    }
}

最小値と最大値

DateTime には 2 つの特別な定数があります。DateTime.MinValue は 1 年 1 月 1 日、DateTime.MaxValue は 9999 年 12 月 31 日を表します。

実際の日付がまだ設定されていない場合の既定値やセンチネル値として便利です。

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine(DateTime.MinValue);
        Console.WriteLine(DateTime.MaxValue.Year);
    }
}

日付文字列を解析する

ユーザーやファイルから受け取るテキストには、日付が含まれていることがよくあります。DateTime.Parse は文字列を DateTime に変換します。

テキストが有効な日付でない場合、Parse はエラーを発生させます。より安全に処理するには DateTime.TryParse を使います。こちらはプログラムを停止させる代わりに true または false を返します。

using System;

class Program
{
    static void Main()
    {
        DateTime d = DateTime.Parse("2024-07-04");
        Console.WriteLine(d.Year);
    }
}

TryParse による安全な解析

DateTime.TryParse は例外を回避します。テキストと out 変数を受け取り、成功すると true を返します。

これは、ユーザーが入力した値など、不確実な入力を処理するために推奨されるパターンです。

using System;

class Program
{
    static void Main()
    {
        bool ok = DateTime.TryParse("not a date", out DateTime result);
        Console.WriteLine(ok);
    }
}

クイックチェック

時刻部分がなく、現在の日付だけ(午前 0 時)が必要です。どの呼び出しを使うべきでしょうか?

まとめ

DateTime 値の作成方法を学びました。ローカルの現在時刻には DateTime.Now、今日の午前 0 時には DateTime.Today、協定世界時には DateTime.UtcNow を使います。

new DateTime(...) で固定された日付を作成し、Year、Month、DayOfWeek で各要素を読み取ります。テキストの変換には Parse または、より安全な TryParse を使います。

よくある質問

「DateTimeを作成する」レッスンは無料ですか?

はい。「DateTimeを作成する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全4レッスンが含まれています。

「DateTimeを作成する」で何を学びますか?

Now、Today、特定の日付を扱います。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「DateTimeを作成する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. DateTimeを作成する
  2. 日付をフォーマットする
  3. TimeSpanと期間
  4. 日付の計算
← C# Academyに戻る