VB.NETで現在の日時を取得する方法を完全解説!Now, Today, UtcNowの違い
生徒
「先生、プログラミングで今の時間を表示させる方法ってありますか?時計みたいな機能を作ってみたいんです!」
先生
「もちろんです。VB.NETという言葉を使えば、パソコンの中にある時計から、今の『年・月・日』や『時・分・秒』を簡単に取り出すことができるんですよ。」
生徒
「パソコンが今の時間を知っているんですね!具体的にはどうやって命令すればいいんですか?」
先生
「よく使われる命令には、NowやTodayといったものがあります。それぞれ少しずつ役割が違うので、初心者の方にも分かりやすく解説していきますね!」
1. 現在の日時を取得する基本の命令
パソコンを使って何か作業をしているとき、画面の端に時計が表示されていますよね。プログラミングの世界でも、その時計の情報を利用することができます。VB.NET(ブイビー・ドットネット)というプログラミング言語では、日付や時刻を扱うための専用の道具箱のようなものが用意されています。
私たちが普段「今は何時かな?」と確認するように、プログラムも「今の情報を教えて!」と命令を出すことができます。このときに使うのが「DateTime(データタイム)」という仕組みです。これを使うことで、今日の日付だけでなく、今の瞬間までの細かい時間までをデータとして扱うことができるようになります。
初心者の方がまず覚えるべきは、この「DateTime」というキーワードです。これは日本語で言えば「日付と時刻」そのものを指す言葉だと考えてください。この道具箱の中から、私たちが知りたい情報を引き出していくのが、日付操作の基本になります。
2. 今この瞬間を知るNowの使い方
「今、何時何分何秒?」という情報をすべて取得したいときに使うのが Now(ナウ) という命令です。英語のNowは「今」という意味ですが、プログラミングでも全く同じ意味で使われます。
Nowを使うと、「2026年3月26日 10時30分15秒」といった具合に、日付と時刻のセットを丸ごと手に入れることができます。例えば、日記アプリで書き込んだ瞬間の時間を記録したり、ゲームの開始時刻を保存したりするときに非常に役立ちます。
パソコンを触ったことがない方にとって「変数(へんすう)」という言葉は難しいかもしれませんが、これは「データを入れるための名前付きの箱」だと思ってください。Nowで取得した今の時間を、一度この箱に入れてから使うのが一般的な流れです。
' 今の時刻を取得して表示するプログラム
Dim imaNoJikan As DateTime = DateTime.Now
Console.WriteLine("今の時間は: " & imaNoJikan)
実行結果は、次のように表示されます。
今の時間は: 2026/03/26 10:30:15
3. 今日という日だけを知るTodayの使い方
時間(時・分・秒)の情報は必要なくて、「今日は何日かな?」という日付だけが知りたい場合もありますよね。そんなときに便利なのが Today(トゥデイ) です。
Todayを使うと、時刻の部分がすべて「0時0分0秒」として扱われます。つまり、純粋に「どの日か」という情報だけを扱いたいカレンダーのような機能を作るときに最適です。
ここで一つ補足ですが、プログラミングにおける「型(かた)」という概念について説明します。VB.NETでは、入れるデータの種類によって箱の形が決まっています。日付や時刻を入れる箱は、先ほども登場した「DateTime型」という形をしています。TodayもこのDateTime型の箱に入れて使うことができます。
' 今日が何日かだけを取得するプログラム
Dim kyoNoHizuke As DateTime = DateTime.Today
Console.WriteLine("今日は: " & kyoNoHizuke.ToString("yyyy年MM月dd日"))
実行結果は、時刻が省かれた形式で表示されます。
今日は: 2026年03月26日
4. 世界共通の時間UtcNowとは
プログラミングを学んでいると、時々 UtcNow(ユーティーシー・ナウ) という言葉に出会います。これは「協定世界時(きょうていせかいじ)」といって、世界中で共通して使われる標準的な時刻のことです。
例えば、日本とアメリカで同時に通信をするアプリを作るとき、それぞれの国の時計で時間を記録するとバラバラになってしまいますよね。日本はイギリス(基準となる場所)よりも9時間進んでいます。UtcNowを使えば、どの国にいても同じ基準の時間を取得できるため、世界規模のサービスでは欠かせない命令なのです。
初心者の方は、まずは「Nowは自分のパソコンの設定時間(日本なら日本時間)」、「UtcNowは世界共通の基準時間」と覚えておけば間違いありません。普段の練習ではNowを使うことが多いでしょう。
' 日本の時間と世界標準の時間を比べるプログラム
Dim nihon As DateTime = DateTime.Now
Dim sekai As DateTime = DateTime.UtcNow
Console.WriteLine("日本の今: " & nihon)
Console.WriteLine("世界の基準: " & sekai)
日本で実行した場合、次のような差が出ます。
日本の今: 2026/03/26 10:30:15
世界の基準: 2026/03/26 01:30:15
5. 取得した日時から年や月をバラバラに取り出す
NowやTodayで取得したデータは、「年・月・日・時・分・秒」が一つにまとまった状態です。しかし、「今の『月』だけを知りたい」とか「『秒』だけを表示したい」ということもあります。
そんなときは、取得したデータに対して「.Year(年)」や「.Month(月)」といった言葉を付け加えることで、特定の部分だけを取り出すことができます。これは非常に便利で、例えば「12月になったらメリークリスマスと表示する」といった条件付きのプログラムを作るときに役立ちます。
このように、一つのまとまりから必要なパーツだけを取り出す操作は、プログラミングでは頻繁に行われます。まるで果物の中から種だけを取り出すようなイメージですね。
' 今の「年」と「月」だけを取り出して表示する
Dim ima As DateTime = DateTime.Now
Dim kotoshi As Integer = ima.Year
Dim kongetsu As Integer = ima.Month
Console.WriteLine("今年は " & kotoshi & " 年です")
Console.WriteLine("今は " & kongetsu & " 月です")
実行結果です。
今年は 2026 年です
今は 3 月です
6. 日時の表示形式を自分好みに変える方法
プログラムが取得した日時は、そのまま表示すると「2026/03/26 10:30:15」のように、少しそっけない形式になります。これを「2026年3月26日」や「10時30分」のように、人間が見やすい形に変えることを「フォーマット(書式設定)」と呼びます。
VB.NETでは、ToString(トゥー・ストリング)という魔法の言葉を使います。カッコの中に「y」や「M」などの文字を並べることで、表示の仕方を自由自在に操ることができます。
「y」はYear(年)、「M」はMonth(月)、「d」はDay(日)を表しています。これらを組み合わせて、自分だけの時計表示を作ってみましょう。パソコン初心者の方も、このパズルを解くような感覚で文字を入れ替えてみると楽しいですよ。
' いろいろな形式で表示してみる
Dim ima As DateTime = DateTime.Now
' 年月日だけを表示
Console.WriteLine(ima.ToString("yyyy/MM/dd"))
' 時刻だけを詳しく表示
Console.WriteLine(ima.ToString("HH時mm分ss秒"))
' 曜日を含めて表示
Console.WriteLine(ima.ToString("yyyy年MM月dd日(ddd)"))
実行すると、指定した通りの見た目になります。
2026/03/26
10時30分15秒
2026年03月26日(木)
7. なぜ現在日時の取得が重要なのか
さて、ここまで現在の日時を取得する方法を学んできましたが、なぜこれが大切なのでしょうか。実は、私たちが普段使っているアプリのほとんどが、この機能を使っています。
銀行のATMで引き出しをしたとき、明細に時間が載りますよね。SNSで投稿をしたとき、「3分前」と表示されるのも、投稿した瞬間の時間をプログラムが記録しているからです。このように、現実の世界とプログラムを繋ぐ「時間」という情報は、システムを動かす上での心臓部とも言えます。
プログラミングを始めたばかりの頃は、ただ文字を表示させるだけでも大変に感じるかもしれません。しかし、今回学んだNowやTodayを使えば、あなたの作ったプログラムが「今の現実の時間」を認識できるようになります。これは大きな一歩です。
まずは簡単なプログラムから試して、自分のパソコンの時計が正しく読み取れるか実験してみてください。VB.NETを使えば、たった数行で本格的な時間管理の仕組みを作ることができます。この楽しさをきっかけに、さらに一歩進んだプログラミングの世界を冒険していきましょう。