カテゴリ: VB.NET 更新日: 2025/12/09

VB.NETのDateTime型の基本と日付・時刻の扱い方を徹底解説!初心者でも理解できるサンプル付き

VB.NETのDateTime型の基本と日付・時刻の扱い方
VB.NETのDateTime型の基本と日付・時刻の扱い方

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

生徒

「VB.NETで日付や時刻を扱いたいんですけど、どうやって書けばいいんですか?」

先生

「VB.NETではDateTime型を使うと、日付や時間を簡単に扱うことができるんだよ。」

生徒

「数字や文字列の変数はなんとなくわかりますけど、日付はどう扱えばいいんですか?」

先生

「それじゃあ、基本から順番に学んでいこう!」

1. DateTime型とは?

1. DateTime型とは?
1. DateTime型とは?

DateTime型は、VB.NETで日付(年・月・日)や時刻(時・分・秒)をまとめて扱うための、とても便利なデータ型です。たとえば「2025年10月4日 15:30:00」のような情報をひとつの変数で持てるため、日付処理がぐっと分かりやすくなります。

もし日付を文字列("2025/10/04" など)として扱うと、計算や比較をするたびに変換が必要になり、初心者には少し難しく感じることがあります。しかし、DateTime型なら日付の取得や計算、フォーマット変更などを簡単な書き方で行えるので、プログラムのミスも減らせます。

例えば、次のように書くだけで「今日の日付」を変数に入れられます。これだけで、VB.NETが自動的に現在の日時を判断してくれます。


Dim today As DateTime = DateTime.Now
Console.WriteLine("現在の日時: " & today)

このように、DateTime型は「日付や時間を安全に、正確に扱える仕組み」を提供してくれる、VB.NETの基礎として欠かせない重要なデータ型です。まずは“今日の日時を取得する”といった簡単な操作から触れてみると、仕組みが自然と理解しやすくなります。

2. DateTime型の基本的な使い方

2. DateTime型の基本的な使い方
2. DateTime型の基本的な使い方

DateTime型を使ううえで最初に覚えておきたいのは、「現在の日時を取得する」「日付だけ・時刻だけを取り出す」といった基本操作です。これらを理解しておくと、後で日付計算やフォーマット変更を学ぶ際にもスムーズに進められます。

まずは、DateTime型の変数に現在の日時を代入して表示してみましょう。たったこれだけのコードで、PCが持っている現在時刻をそのまま取得できます。


Dim today As DateTime = DateTime.Now
Console.WriteLine("現在日時: " & today)

2025/10/04 15:30:00

DateTime.Nowは「年・月・日・時・分・秒」をすべて含む完全な日時を返します。もし日付だけ欲しい場合や、逆に時刻だけを知りたい場合は、次のように簡単に取り出せます。


Console.WriteLine("日付のみ: " & today.Date)
Console.WriteLine("時刻のみ: " & today.TimeOfDay)

このように、DateTime型は必要な情報を柔軟に取り出せるため、業務用アプリや日付を扱うツールでも欠かせない基礎機能になっています。特に、「まず現在の日時を取得する」という操作は多くのプログラムで登場するので、最初にしっかり押さえておくと後の理解がぐっと楽になります。

3. 特定の日付や時刻を作成する

3. 特定の日付や時刻を作成する
3. 特定の日付や時刻を作成する

DateTime型を使うと、好きな日付や時刻を自分で指定して変数に入れることができます。誕生日やイベントの日付など、決まった日時を扱いたい場合に非常によく使う方法です。指定の仕方もシンプルで、年・月・日を順番に渡すだけで1つのDateTime値としてまとめて扱えるようになります。

まずは、誕生日のような「日付だけ」を指定してみましょう。次のコードのように、新しいDateTimeを作成すればその日付が変数にセットされます。


Dim myBirthday As DateTime = New DateTime(1995, 12, 25)
Console.WriteLine("誕生日: " & myBirthday)

誕生日: 1995/12/25 0:00:00

このように、時間を指定していない場合は「0時0分0秒」が自動で設定されます。時刻まで含めた正確な日時を設定したいときは、年・月・日だけでなく「時・分・秒」まで指定できます。


Dim eventTime As DateTime = New DateTime(2025, 10, 4, 14, 30, 0)
Console.WriteLine("イベント開始: " & eventTime)

イベント開始: 2025/10/04 14:30:00

この機能を使えば「開始時刻」「締め切り日」「リマインドするタイミング」などを正確に管理できるようになり、アプリ開発でも非常に役立ちます。特にスケジュール管理アプリや予約システムのように“日時を使い分ける”場面では欠かせない基本技術です。

4. 日付や時刻の計算

4. 日付や時刻の計算
4. 日付や時刻の計算

DateTime型を使うと、日付や時刻の計算がとても簡単です。

4-1. 日付を足す・引く

例えば「今日から7日後」や「1時間前」を求めるには、AddDaysAddHoursを使います。


Dim today As DateTime = DateTime.Now
Dim nextWeek As DateTime = today.AddDays(7)
Dim oneHourAgo As DateTime = today.AddHours(-1)

Console.WriteLine("今日: " & today)
Console.WriteLine("来週: " & nextWeek)
Console.WriteLine("1時間前: " & oneHourAgo)

4-2. 日付の差を求める

二つの日付の差を求めるには、引き算を使います。結果はTimeSpan型(時間の長さを表す型)になります。


Dim startDate As DateTime = New DateTime(2025, 1, 1)
Dim endDate As DateTime = New DateTime(2025, 12, 31)

Dim diff As TimeSpan = endDate - startDate
Console.WriteLine("日数差: " & diff.Days & "日")

日数差: 364日

5. 日付と時刻のフォーマット

5. 日付と時刻のフォーマット
5. 日付と時刻のフォーマット

DateTime型は、そのまま表示するとPCの設定に応じた形式で出力されますが、ToStringメソッドを使うと自由な形に整形できます。


Dim now As DateTime = DateTime.Now

Console.WriteLine(now.ToString("yyyy/MM/dd"))
Console.WriteLine(now.ToString("HH:mm:ss"))
Console.WriteLine(now.ToString("yyyy年MM月dd日 HH時mm分"))

2025/10/04
15:30:00
2025年10月04日 15時30分

yyyyは西暦、MMは月、ddは日、HHは24時間表記の時、mmは分、ssは秒を意味します。

6. よく使うDateTimeプロパティ

6. よく使うDateTimeプロパティ
6. よく使うDateTimeプロパティ

DateTime型には便利なプロパティがたくさんあります。よく使うものをいくつか紹介します。

  • Now … 現在の日時
  • Today … 今日の日付(時刻は0:00:00)
  • Year … 年を取得
  • Month … 月を取得
  • Day … 日を取得
  • DayOfWeek … 曜日を取得
  • Hour … 時を取得
  • Minute … 分を取得
  • Second … 秒を取得

Dim now As DateTime = DateTime.Now
Console.WriteLine("年: " & now.Year)
Console.WriteLine("月: " & now.Month)
Console.WriteLine("日: " & now.Day)
Console.WriteLine("曜日: " & now.DayOfWeek)

7. DateTime型を使うときの注意点

7. DateTime型を使うときの注意点
7. DateTime型を使うときの注意点

最後に、初心者がDateTime型を使うときに注意しておきたいポイントを紹介します。

  • 文字列として入力された日付は、そのままでは使えない場合があります。DateTime.Parseを使って変換すると安全です。
  • 国や地域によって日付の書き方(フォーマット)が異なるため、ToStringで指定しておくと確実です。
  • 日付の計算では閏年(うるうどし)を自動で考慮してくれるので安心ですが、開始日と終了日を間違えないようにしましょう。

まとめ

まとめ
まとめ

VB.NETのDateTime型は、初心者がつまずきやすいデータ型のひとつですが、一度基本を理解してしまえば日付や時刻の管理がとても直感的にできる便利な機能です。年月日と時刻という二つの情報をひとつの変数で扱えるため、計算処理や表示処理をまとめて行いやすく、アプリケーション全体の流れも整理されていきます。また、日付の差分を求めたり、特定の日付を計算したりといった操作がスムーズにできることから、業務システムや予約管理、ログ管理など、実務のさまざまな場面で役立つ基礎でもあります。 DateTime型が持つプロパティやメソッドを理解していくと、「今日の日付だけが欲しい」「三日後の日付を計算したい」「フォーマットを整えて表示したい」といった要望に対して、シンプルで読みやすいコードを書けるようになります。特にAddDaysAddHoursなどの日付計算メソッドは、複雑な処理をしなくても直感的に使えるため、はじめのうちから積極的に触れておきたいところです。 また、日付や時刻を文字列として扱う場合は、地域によるフォーマットの違いを意識する必要がありますが、DateTime型に変換してしまえば統一された形式で扱えるようになるため、データの信頼性も高まります。フォーマットを指定できるToStringメソッドは、表示時の整え方として欠かせない機能であり、画面表示を行うアプリケーションでは必ずと言っていいほど登場します。 初心者が特に意識しておきたいのは、「日付は文字列ではなくDateTime型で管理する」ことです。これを理解しておくと、思い違いや計算ミスを避けられるだけでなく、非常に保守しやすいコードを書けるようになります。複雑に感じられる日付処理でも、DateTime型を正しく使えば驚くほどすっきりまとめられるので、積極的に活用していきましょう。

追加のサンプルプログラム


'イベントの日付管理と残り日数を計算するサンプル
Dim eventDate As DateTime = New DateTime(2026, 4, 1, 10, 0, 0)
Dim now As DateTime = DateTime.Now

Console.WriteLine("イベント開始日時: " & eventDate.ToString("yyyy年MM月dd日 HH時mm分"))

Dim remaining As TimeSpan = eventDate - now

Console.WriteLine("残り日数: " & remaining.Days & "日")
Console.WriteLine("残り時間: " & remaining.Hours & "時間")
Console.WriteLine("残り合計時間: " & remaining.TotalHours & "時間")

'開始日の曜日も取得できる
Console.WriteLine("イベントの曜日: " & eventDate.DayOfWeek)

このサンプルでは、未来の日付を設定してイベント開始までの残り時間を計算しています。実際のアプリケーションでも、このような「残り日数表示」「イベント管理」「締切カウントダウン」といった処理はよく使われます。DateTime型があれば、こうした時間管理のロジックを簡単に書けるため、複雑なアプリケーションでも整ったコード構造を維持できます。 特に、TimeSpan型との組み合わせによって「どれだけ時間が経ったか」「残り時間がどれくらいか」を明確に算出できるのは非常に便利です。年・月・日・曜日・時・分・秒といった情報はDateTimeプロパティから取り出せるため、日時に関する処理はこれらを組み合わせるだけで十分活用できます。 また、フォーマット指定を行うことで、ユーザーにとって読みやすい形に整形できる点も実務では欠かせません。「2026/04/01 10:00:00」という表示でも分かりますが、「2026年04月01日 10時00分」と書くことで、情報がぐっと見やすくなります。こうした細かな工夫がプログラム全体の品質を左右し、ユーザーにとっても使いやすい設計につながっていきます。 日付や時間の操作は、一度きちんと理解すればどの分野でも応用がききます。アプリケーションの信頼性を高めながら、処理の流れを整理しやすくなるため、VB.NETを学ぶ上で欠かせない要素だと言えるでしょう。

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

生徒

「DateTime型って難しそうだと思っていましたが、日付や時間をまとめて扱えるから便利ですね。」

先生

「そうなんだよ。慣れてくると、日付を計算したりフォーマットしたりするのがとても簡単に感じられるはずだよ。」

生徒

「AddDaysやAddHoursなどのメソッドが直感的で使いやすいと感じました。数字をそのまま足すより確実ですね!」

先生

「その通り。DateTime型を使えば誤差のない計算ができるし、元の日付を壊す心配もないから安全なんだ。」

生徒

「ToStringで自由に表示形式を変えられるのも便利です。画面に出すときに使いやすいですね!」

先生

「フォーマット指定は画面開発でもレポート作成でもよく使われるから覚えておくと役に立つよ。」

生徒

「今日学んだ内容を使って、日付を扱うアプリを作ってみたいです!」

先生

「とても良い考えだね。DateTime型は奥が深いけれど、使いこなせれば大きな武器になるよ。」

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET WebFormsのGridViewでデータ表示を完全マスター!初心者向けガイド
New2
VB.NET
VB.NETの例外処理とパフォーマンスの関係を初心者向けに完全解説
New3
ASP.NET
ASP.NET WebFormsでデータベースと連携!初心者でもできる保存と表示の基本
New4
VB.NET
VB.NETでStackTraceを利用してエラー箇所を特定する方法を完全解説!初心者向け例外処理入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのEnum(列挙型)の使い方を完全解説!初心者にも分かる定義と活用方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介