C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド
生徒
「プログラムで日付や時間を使いたいんですけど、C#ではどうやって扱うんですか?」
先生
「C#では、DateTimeという日付と時間を扱うための便利な型が用意されています。」
生徒
「日付型ってどんなことができるんですか?現在時刻を表示したりできますか?」
先生
「もちろんできますよ。では、DateTimeの基本的な使い方から見ていきましょう。」
1. C#の日付型(DateTime)とは?
C#のDateTime型は、日付や時間を扱うための基本的なデータ型です。カレンダーのように「何年・何月・何日」を表すだけでなく、「何時・何分・何秒」といった時刻まで記録できます。日付計算や表示形式の変更など、日常の時間操作に必要な機能をひととおり備えているため、C#の日付操作ではもっともよく利用される型です。
プログラムの中では、書類の作成日を表示したり、ゲームの内部時間を管理したり、ログに記録する時刻を残したりするときに使われます。人間が時計やカレンダーを見るのと同じように、パソコンが時間を理解するための“辞書”のような役割を持っています。
2. 現在の日付と時刻を取得する方法
C#で「今の時間」を知りたい場合は、DateTime.Nowを使います。このプロパティは、パソコンが持つ現在の時刻情報をそのまま返してくれます。時計を見て「今は何時かな?」と確認するのと同じような感覚で利用できます。
DateTime now = DateTime.Now;
Console.WriteLine(now);
2025/11/16 23:12:45
このように、日付と時刻がひとまとまりの情報として取得できます。表示形式は環境によって異なりますが、多くの場合「年/月/日 時:分:秒」という形になります。
3. 特定の日付を作成する方法
自分で好きな日付を指定して作りたい場合は、DateTimeのコンストラクタを使います。たとえば、2024年1月1日を作るときは次のようになります。
DateTime day = new DateTime(2024, 1, 1);
Console.WriteLine(day);
2024/01/01 0:00:00
このように、年・月・日の順に指定することで、自由に日付を作成できます。時刻まで指定したい場合は、「年・月・日・時・分・秒」といった形で細かく設定できます。
4. 日付から年・月・日・時刻を取り出す方法
DateTimeから特定の情報だけを抜き出すこともよくあります。たとえば、誕生日から「年だけ取る」「月だけ取る」などの操作ができます。これは、Year・Month・Dayなどのプロパティを使うことで簡単に取得できます。
DateTime dt = new DateTime(2025, 11, 16, 15, 30, 0);
Console.WriteLine(dt.Year);
Console.WriteLine(dt.Month);
Console.WriteLine(dt.Day);
Console.WriteLine(dt.Hour);
Console.WriteLine(dt.Minute);
2025
11
16
15
30
このように、カレンダーの情報を細かく取り出して使えるため、画面表示に使ったり、条件分岐に利用したりすることができます。
5. 日付の計算をする方法(加算・減算)
日付に日数を足したり、時間を引いたりする操作もよく使われます。C#では、AddDays・AddHoursなどのメソッドを使うことで簡単に計算できます。締切日を計算したり、○日後・○日前を求める場合に便利です。
DateTime today = DateTime.Now;
DateTime threeDaysLater = today.AddDays(3);
DateTime twoHoursBefore = today.AddHours(-2);
Console.WriteLine(threeDaysLater);
Console.WriteLine(twoHoursBefore);
2025/11/19 ~
2025/11/16 ~(2時間前)
引き算をしたい場合は、マイナスの値を入れるだけなので、とても直感的に使えます。
6. 日付の書式を整えて表示する方法(フォーマット)
日付を表示するとき、「2025/11/16」ではなく「2025年11月16日」のように整えたいことがあります。このような場合は、ToString()に書式(フォーマット)を指定します。
DateTime now = DateTime.Now;
string formatted = now.ToString("yyyy年MM月dd日 HH時mm分ss秒");
Console.WriteLine(formatted);
2025年11月16日 23時12分45秒
フォーマットを変更することで、画面表示やログ出力をより読みやすくできます。プログラミングでは非常によく使うテクニックです。
7. 文字列の日付をDateTimeに変換する方法(Parse)
ユーザーが入力した文字列をそのまま使うのではなく、DateTimeに変換したい場面もあります。例えば、「2025/11/16」という文字列をDateTimeに変換するには、DateTime.Parseを使います。
string text = "2025/11/16";
DateTime dt = DateTime.Parse(text);
Console.WriteLine(dt);
2025/11/16 0:00:00
正しい日付形式であれば自動で変換できます。入力フォームを作るときなどに役立ちます。
まとめ
DateTime型の基礎を押さえて日付操作の理解を深める
C#の日付型であるDateTimeは、日付と時刻をひとまとめで扱える便利な型であり、プログラムのさまざまな場面で活用されます。今回の記事では、現在時刻の取得、特定日付の作成、日付の分解、日付の加算・減算、フォーマットでの表示変更、文字列から日付への変換など、DateTimeの基本的でありながら必ず知っておきたい操作をひととおり学びました。
日付は単に表示するだけではなく、締切日を計算したり、予約時刻を比較したり、ログに正確な時間を残したりするなど、実際のシステム開発に欠かせない値です。そのため、DateTime型の特徴や使い方を理解しておくことは、今後のC#学習において大きな財産になります。とくにAddDays・AddHoursのような直感的なメソッドは、一度覚えてしまえばさまざまな場面で応用できます。
日付フォーマットと文字列変換は実務でも必須の技術
文章として日付を整形したいときには、ToString()に書式を指定する方法が非常に強力です。「yyyy/MM/dd」や「yyyy年MM月dd日 HH時mm分ss秒」など、用途に合わせて自在に書式を変更できます。これによって、ログ出力、レポート作成、画面表示などがより読みやすい形になります。また、ユーザー入力を扱う場面では、文字列をDateTime.Parseで変換する必要があります。正しい形式であれば簡単にDateTimeへ変換できるため、入力チェックやフォーム処理にも役立ちます。
表示形式の変換だけではなく、日付の加算・減算を行うことで「○日後」「○日前」「指定時刻の○時間後」のような計算が自然に書ける点もDateTimeの大きな魅力です。実務でも頻繁に扱う機能のため、今回の知識をしっかり身につけておくと、日付操作の幅が大きく広がります。
まとめ用サンプルコード(基礎〜応用まで)
using System;
class Program
{
static void Main()
{
// 現在の日付と時刻を取得
DateTime now = DateTime.Now;
Console.WriteLine("現在:" + now.ToString("yyyy/MM/dd HH:mm:ss"));
// 特定の日付の作成
DateTime birthday = new DateTime(1995, 7, 20);
Console.WriteLine("誕生日:" + birthday.ToString("yyyy年MM月dd日"));
// 日付の加算・減算
DateTime nextWeek = now.AddDays(7);
DateTime threeHoursAgo = now.AddHours(-3);
Console.WriteLine("1週間後:" + nextWeek);
Console.WriteLine("3時間前:" + threeHoursAgo);
// 年月日・時刻を取り出す
Console.WriteLine("年:" + now.Year);
Console.WriteLine("月:" + now.Month);
Console.WriteLine("日:" + now.Day);
Console.WriteLine("時:" + now.Hour);
Console.WriteLine("分:" + now.Minute);
// 文字列をDateTimeに変換
string input = "2025/11/16";
DateTime parsed = DateTime.Parse(input);
Console.WriteLine("変換結果:" + parsed.ToString("yyyy/MM/dd"));
}
}
このサンプルでは、現在時刻の取得から日付の作成、加算・減算、フォーマット変換、文字列からの変換まで、DateTimeが持つ便利な機能を一通り確認できます。日付という情報は、システム開発だけでなく日常的なアプリケーションでも頻繁に使われるため、こうした基礎をしっかり理解しておくことで、C#での開発がよりスムーズになります。 また、フォーマット指定を活用することで、プログラムの出力をより読みやすく整えられるようになります。実際の業務ではログ記録や画面表示の整形が必須のため、この技術を身につけるだけでプログラムの品質が大きく向上します。
生徒
「DateTimeって思っていたよりいろんなことができるんですね!特にAddDaysで簡単に日付を計算できるのが便利だと思いました。」
先生
「そうなんです。日付計算は実務で本当によく使う場面なので、直感的に書けるのはありがたいですよね。フォーマット指定も覚えておくと、必要な形にすぐ整形できますよ。」
生徒
「ユーザー入力から日付をParseで変換できるのも便利ですね。予約の入力フォームとかで使えそうです!」
先生
「その通り。DateTimeはC#で日付を扱うための中心になる型だから、今日の内容をしっかり覚えておくと今後の学習でも役に立ちます。」
生徒
「はい!もっと複雑な日時処理にも挑戦してみます!」