カテゴリ: VB.NET 更新日: 2026/04/05

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時間前」といった計算は、AddDays や AddHours を使うだけで簡単に求められます。数字がプラスなら未来の日付、マイナスなら過去の日付を表します。


Dim today As DateTime = DateTime.Now

Dim nextWeek As DateTime = today.AddDays(7)     ' 7日後
Dim oneHourAgo As DateTime = today.AddHours(-1) ' 1時間前

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

このように、計算結果が新しいDateTime型として返ってくるため、元の today には影響しません。予定表アプリなどで「締め切りまでの日にちをずらす」ような操作にも応用できます。

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

二つの日付の差は、DateTime同士を引き算することで求められます。結果は 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
VB.NET
VB.NETの変数とは?初心者向けに定義方法とよく使うデータ型を解説
New2
ASP.NET
ASP.NET MVCでモデルを定義してデータを扱う方法を初心者向けに解説
New3
ASP.NET
ASP.NETのマイグレーションを使ったスキーマ管理方法を完全解説!初心者でも安心
New4
ASP.NET
MacでASP.NET開発を始める方法|初心者向けにVisual Studioと.NET SDKを解説
人気記事
No.1
Java&Spring記事人気No1
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.2
Java&Spring記事人気No2
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
No.3
Java&Spring記事人気No3
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.4
Java&Spring記事人気No4
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
VB.NET
VB.NETで日付を加算・減算する方法を完全ガイド!AddDaysやAddMonthsの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETで日付と時間を比較・計算する方法!CompareとSubtractを完全解説
No.7
Java&Spring記事人気No7
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順