C#でアプリケーションを開発する上で、現在の日時や時刻を取得・表示する処理は非常によく使われます。本記事では、初心者向けにDateTime
構造体を使って現在時刻を取得・表示する基本的な方法をわかりやすく解説します。
DateTime.Nowで現在の日時を取得する
最も基本的な方法は、DateTime.Now
プロパティを使うことです。
DateTime now = DateTime.Now;
Console.WriteLine(now); // 例: 2025/06/08 14:25:00
DateTime.Now
は、システムのローカルタイムゾーンに基づいた現在日時を返します。時刻も含まれている点に注意してください。
現在時刻だけを取得する
日時のうち「時刻だけ」が欲しい場合には、TimeOfDay
プロパティを使います。
TimeSpan currentTime = DateTime.Now.TimeOfDay;
Console.WriteLine(currentTime); // 例: 14:25:00.1234567
現在の日付だけを取得する
逆に、日付だけが必要な場合は、Date
プロパティを使います。
DateTime today = DateTime.Now.Date;
Console.WriteLine(today); // 例: 2025/06/08 00:00:00
Date
プロパティは時刻部分を「0:00:00」としたDateTimeオブジェクトを返します。
UTC(世界協定時刻)で現在時刻を取得する
グローバル対応が必要なアプリでは、DateTime.UtcNow
を使ってUTC(協定世界時)を取得します。
DateTime utcNow = DateTime.UtcNow;
Console.WriteLine(utcNow); // 例: 2025/06/08 05:25:00
時刻のフォーマットを指定して表示する
現在時刻を任意の形式で表示したいときは、ToString()
メソッドにフォーマット文字列を指定します。
DateTime now = DateTime.Now;
Console.WriteLine(now.ToString("yyyy/MM/dd HH:mm:ss"));
// 例: 2025/06/08 14:25:00
よく使うフォーマット例:
yyyy/MM/dd
→ 年/月/日HH:mm:ss
→ 時:分:秒(24時間表記)tt h:mm
→ AM/PMを含む12時間表記
現在時刻の取得はどんなときに使う?
- ログに現在時刻を記録する
- ファイル名やデータにタイムスタンプを付ける
- イベントの時間を比較・記録する
- 一定時間ごとの処理を行う
よくある注意点
DateTime.Now
はローカルタイムなので、タイムゾーンに注意が必要- 精度が必要な処理では
Stopwatch
やDateTime.UtcNow
を使う方が適している
まとめ
C#で現在時刻を扱うには、DateTime.Now
やDateTime.UtcNow
を使うのが基本です。必要に応じてDate
やTimeOfDay
で日付・時刻の一部だけを取り出したり、ToString
でフォーマットを整えたりすることで、さまざまな場面に対応できます。
初心者のうちはDateTime.Now
の使い方を確実にマスターし、フォーマットの指定やUTCとの違いも少しずつ学んでいくのがおすすめです。