カテゴリ: C# 更新日: 2026/03/22

C#で現在の日付と時刻を取得する方法を徹底解説!初心者でも理解できるDateTime入門

C#で現在の日付・時刻を取得する方法(DateTime.Now・UtcNow)
C#で現在の日付・時刻を取得する方法(DateTime.Now・UtcNow)

先生と生徒の会話形式で理解しよう

生徒

「パソコンの画面に今日の日付や現在の時刻を表示するプログラムってC#で作れますか?」

先生

「もちろんできますよ。C#には日付や時間を扱うためのDateTimeという便利な仕組みがあります。」

生徒

「どうやって実際の日時を取り出すんですか?」

先生

「それなら、まずはDateTime.NowDateTime.UtcNowを使って現在時刻を取得する方法から学びましょう!」

1. C#で現在の日付と時刻を取得する基本

1. C#で現在の日付と時刻を取得する基本
1. C#で現在の日付と時刻を取得する基本

C#では、日付と時間を扱うときにDateTimeという構造体を使います。 構造体と聞くと難しく感じるかもしれませんが、実際には「年・月・日・時・分・秒」といった 日時に必要な情報を一つにまとめて扱える便利な仕組みです。 プログラム初心者でも、現在の日付や今の時刻を簡単に取得できるため、最初に覚えておきたい基本要素の一つです。

DateTimeを使うと、現在の日時を取得するだけでなく、画面に表示したり、別の日時と比較したり、 ログや記録として保存したりすることもできます。 日付と時刻の取得は、家計簿アプリ、勤怠管理、作業記録、学習時間の測定など、 さまざまなC#プログラムの土台となる処理です。

まず知っておきたい重要なポイントとして、C#には「パソコンに設定されている現在時刻」を取得する方法と、 「世界共通の基準となる時刻」を取得する方法の二種類があります。 これは、アプリやシステムが日本だけでなく世界中で使われることを前提としているためで、 地域ごとの時間差を正しく扱うために用意されています。


// 現在の日付と時刻を取得する一番シンプルな例
DateTime now = DateTime.Now;
Console.WriteLine(now);

このように、DateTimeを使えば特別な準備をしなくても、 すぐに現在の日付と時刻を取得できます。 まずは「今の日時を取り出せる」という感覚をつかむことが、 DateTime入門としてとても大切です。

2. DateTime.Nowとは?パソコンの現在時刻を取得する仕組み

2. DateTime.Nowとは?パソコンの現在時刻を取得する仕組み
2. DateTime.Nowとは?パソコンの現在時刻を取得する仕組み

DateTime.Nowは、今この瞬間の「パソコンに設定されている日時」を取得するための最も基本的な方法です。 パソコンにはあらかじめタイムゾーンが設定されており、日本で使っている場合は日本標準時(JST)が基準になります。 そのため、DateTime.Nowを使うと、画面右下の時計やカレンダーに表示されている時刻とほぼ同じ値を取得できます。

タイムゾーンとは「どの地域の時間を基準にするか」という考え方で、世界には複数の時間帯が存在します。 DateTime.Nowは、このタイムゾーン設定を自動的に考慮してくれるため、 初心者でも難しい設定を意識せずに現在時刻を扱えるのが大きな特徴です。 日付や時刻を画面に表示するだけの簡単なプログラムであれば、まずはDateTime.Nowを使えば問題ありません。

例えば、現在が「2025年1月10日 14時30分」であれば、そのまま同じ内容を取得できます。 実際のコードはとても短く、プログラミング未経験者でも直感的に理解できます。


// パソコンに設定されている現在の日付と時刻を取得
DateTime now = DateTime.Now;
Console.WriteLine(now);

このコードを実行すると、次のように現在時刻が表示されます。 秒単位まで取得できるため、ログの記録や操作時間の確認にも利用できます。


2025/01/10 14:30:00

このように、DateTime.Nowは「今の地域の現在時刻」をそのまま使いたい場面に最適です。 日付表示、作業開始時刻の記録、簡単な時間管理など、 C#で日時を扱う多くの場面で最初に登場する基本的な機能と言えるでしょう。

3. DateTime.UtcNowとは?世界標準時(UTC)を取得する方法

3. DateTime.UtcNowとは?世界標準時(UTC)を取得する方法
3. DateTime.UtcNowとは?世界標準時(UTC)を取得する方法

一方、DateTime.UtcNowは「世界協定時刻(UTC)」と呼ばれる、世界共通の基準となる時刻を取得します。 UTCは国や地域による時差の影響を受けないため、どこで取得しても同じ基準の時間になるのが大きな特徴です。 そのため、サーバー処理やデータの記録、海外とやり取りするシステムなどでよく使われます。

UTCを簡単に説明すると「世界で統一された時計の基準」です。 日本標準時(JST)はUTCより9時間進んでいるため、日本でDateTime.UtcNowを使うと、 実際に目で見ている時刻よりも9時間前の値が取得されます。 この仕組みを理解しておくと、時刻のズレによるトラブルを防ぎやすくなります。


// 世界共通の基準時刻(UTC)を取得する例
DateTime utc = DateTime.UtcNow;
Console.WriteLine(utc);

上のコードを実行すると、次のようにUTCの時刻が表示されます。 表示される値はパソコンの地域設定に左右されないため、記録用の時刻としてとても扱いやすいです。


2025/01/10 05:30:00

このように、日本とUTCには9時間の差があるため、 日本のローカル時刻と比べると少し違和感のある表示になります。 しかし、世界共通の時刻で管理したい場合には、 DateTime.UtcNowを使うことが安全で確実な方法と言えるでしょう。

4. NowとUtcNowは何が違うのか?初心者にも分かる具体例

4. NowとUtcNowは何が違うのか?初心者にも分かる具体例
4. NowとUtcNowは何が違うのか?初心者にも分かる具体例

初心者が特に迷いやすいポイントが、「DateTime.NowDateTime.UtcNowのどちらを使えばよいのか」という点です。 見た目はどちらも現在時刻を取得するように見えますが、基準にしている時間が異なるため、使いどころを理解しておくことが大切です。

例えば、自分のパソコンで日記を書いたり、作業開始時刻を記録したりする場合は、 画面に表示されている時刻と同じである方が分かりやすくなります。 このような「人が見るための時間」を扱う場面では、DateTime.Nowを使うのが自然です。

一方で、世界中の人が利用するサービスや、サーバーに保存するログの時刻を考えてみましょう。 国ごとに時差がある状態でNowを使うと、記録された時刻がバラバラになってしまいます。 そこで、全員が同じ基準で扱えるDateTime.UtcNowを使うことで、 時刻の比較や管理がしやすくなります。


// NowとUtcNowの違いを確認する簡単な例
Console.WriteLine(DateTime.Now);
Console.WriteLine(DateTime.UtcNow);

このコードを実行すると、二つの時刻が数時間ずれて表示されます。 日本の場合は9時間の差があるため、この違いを実際に目で確認できます。 日常的な処理にはNow、システム管理や記録用途にはUtcNowと覚えておくと、 C#での日時処理がぐっと分かりやすくなるでしょう。

5. 現在の日付だけ・時刻だけを取り出す便利なプロパティ

5. 現在の日付だけ・時刻だけを取り出す便利なプロパティ
5. 現在の日付だけ・時刻だけを取り出す便利なプロパティ

現在日時を取得したあと、「日付だけを知りたい」「時刻だけを使いたい」と思うこともあります。C#のDateTimeには、そのためのプロパティが用意されています。

日付だけを取り出す


DateTime today = DateTime.Now.Date;
Console.WriteLine(today);

時刻だけを取り出す


TimeSpan time = DateTime.Now.TimeOfDay;
Console.WriteLine(time);

このように日時を部分的に処理できるため、日付を使う家計簿アプリや、時刻を扱うタイマー機能などにも応用できます。

6. 初心者が覚えておきたいDateTimeの注意点

6. 初心者が覚えておきたいDateTimeの注意点
6. 初心者が覚えておきたいDateTimeの注意点

最後に、DateTimeを使うときに知っておくと役に立つポイントがあります。日付と時刻は国や地域によって表現のルールが違います。例えば、日本では「年/月/日」の順ですが、海外では「月/日/年」が一般的です。そのため、アプリを作るときは書式(フォーマット)を明確に指定したほうが安全です。

今後、日時のフォーマット変換や計算なども学ぶことになりますが、まずは「現在時刻を取得する方法」を正しく理解することが大切です。この基本が分かれば、より複雑な日時操作にも応用できるようになります。

まとめ

まとめ
まとめ

DateTime入門として押さえておきたいポイント

この記事では、C#で現在の日付と時刻を取得する方法について、DateTime構造体を中心に基礎から順番に解説してきました。 DateTimeは、年・月・日・時・分・秒といった日時情報を一つにまとめて扱えるため、 プログラミング初心者でも直感的に理解しやすい仕組みになっています。 現在時刻を取得する処理は、日付表示、作業時間の記録、ログの保存、アプリの動作履歴管理など、 さまざまなC#プログラムの基本となる重要な要素です。

特に重要なのが、DateTime.NowDateTime.UtcNowの違いです。 Nowはパソコンに設定されているローカル時刻を取得し、画面に表示されている時刻と同じ感覚で使えます。 一方、UtcNowは世界共通の基準時刻を取得するため、国や地域による時差の影響を受けません。 この違いを理解して使い分けることで、時刻のズレによる不具合や記録ミスを防ぐことができます。

日付と時刻を分けて扱う考え方

DateTimeは便利ですが、常に「日時すべて」を使うとは限りません。 日付だけが必要な場面、時刻だけを扱いたい場面も多く存在します。 そのような場合に役立つのが、DateプロパティやTimeOfDayプロパティです。 日付管理やタイマー機能、スケジュール表示など、 実用的なアプリを作るうえで欠かせない考え方と言えるでしょう。

また、日時の表示形式は国や地域によって異なるため、 プログラム側で書式を指定して表示することも大切です。 見た目が分かりやすくなるだけでなく、後からログを確認するときの可読性も向上します。 DateTimeは「取得する」「表示する」「管理する」という流れを意識して使うことで、 より安定したプログラムを書けるようになります。

まとめとしてのサンプルプログラム

最後に、この記事で学んだ内容をまとめた簡単なサンプルを確認しておきましょう。 現在のローカル時刻とUTCを取得し、分かりやすい形式で表示する例です。


DateTime localNow = DateTime.Now;
DateTime utcNow = DateTime.UtcNow;

Console.WriteLine("現在のローカル時刻:" + localNow.ToString("yyyy/MM/dd HH:mm:ss"));
Console.WriteLine("現在のUTC時刻:" + utcNow.ToString("yyyy/MM/dd HH:mm:ss"));

このようにDateTimeを使えば、現在時刻の取得から表示までをシンプルに実装できます。 基本をしっかり理解しておくことで、今後の日時計算やスケジュール管理にもスムーズに対応できるようになります。

先生と生徒の振り返り会話

生徒:「C#で現在の日付や時刻を取るだけでも、考えることがいろいろあるんですね。」

先生:「そうですね。特にNowとUtcNowの違いを理解することが大切です。」

生徒:「画面に表示するならNow、記録やログならUtcNowが向いているんですね。」

先生:「その通りです。用途を意識して使い分けることで、トラブルを防げますよ。」

生徒:「日付だけ、時刻だけを取り出せるのも便利だと思いました。」

先生:「実際のアプリ開発では、その考え方がとても重要になります。今日の内容はしっかり身につけておきましょう。」

カテゴリの一覧へ
新着記事
New1
Azure
Azure SQL Databaseのリードスケールアウトとは?参照負荷分散でパフォーマンスを高速化する方法
New2
C#
C#プログラムの実行方法まとめ!Visual Studio・コマンドライン・.NET CLIの使い方
New3
C#
C#でHello Worldを表示する方法を完全ガイド!初心者でも1行から始められる入門講座
New4
COBOL
Micro Focus COBOLの特徴と使い方を徹底解説!初心者でもわかるIDE活用法
人気記事
No.1
Java&Spring記事人気No1
Azure
Azure Bastionの使い方を徹底解説!踏み台サーバー不要で安全にRDP/SSH接続
No.2
Java&Spring記事人気No2
C#
C#のプロパティとは?get/setアクセサの書き方と使い分け
No.3
Java&Spring記事人気No3
C#
C#のデリゲートとは?メソッドを変数のように扱う基本を解説
No.4
Java&Spring記事人気No4
C#
C#の文字列を数値に変換する方法(int.Parse・TryParse)をわかりやすく解説!
No.5
Java&Spring記事人気No5
C#
C#でswitch式を使う方法!C# 8.0以降の新機能を解説
No.6
Java&Spring記事人気No6
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.7
Java&Spring記事人気No7
C#
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド
No.8
Java&Spring記事人気No8
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本