.net column

.NET開発者のためのブログメディア

VB.NETで日付を文字列にフォーマット変換する方法を徹底解説!

2020年01月10日

「VB.NETで日付を文字列に変換するには、どうすればいいんだろう……」
「具体的な方法やサンプルコードが知りたいな……」

と思っていませんか?

プログラミングを行う上で、日付を扱うケースは多いです。そのため、日付から文字列に変換する方法を覚えておくのがおすすめです。

ただ、「VB.NETは変換方法が多く、覚えられない……」と思う人も多いのではないでしょうか。

そこで今回は、VB.NETで日付を文字列にフォーマット変換する方法について解説します。

PG
VB.NETで日付を使う時の悩みを減らしたい!
SE
変換方法はたくさんけど、覚えておくのは1つだけでも大丈夫。その理由や他の変換方法について、まとめて解説しますね!

※この記事は、Visual Basicの16.0で動作確認しました。

VB.NETで日付を文字列にフォーマット変換する方法とは?

VB.NETで日付を文字列にフォーマット変換する方法は、大きく分けて以下の2つです。

1. 変換方法が指定されている関数を使う
2. 応用的な関数を使って指定する

1つずつ詳しく解説しますね。

1. 変換方法が指定されている関数を使う

1つ目は、「変換方法が指定されている関数を使う」ことです。

VB.NETには、「ToString」のように「To〇〇〇〇」の名がついた関数があります。これを使えば、以下のように日時を文字列に変換できます。

・ToString
表示例:2020/1/1 12:00:30

・ToShortDateString
表示例:2020/1/1

・ToLongDateString
表示例:2020年1月1日

・ToShortTimeString
表示例:12:00

・ToLongTimeString
表示例:12:00:30

使い方の例:

具体的な使い方の例については、後ほどサンプルコードと共に解説しますね。

2. 応用的な関数を使って指定する

2つ目は、「応用的な関数を使って指定する」方法です。

「To〇〇〇〇」の書き方の場合、変換後の結果を覚えていないと、扱いが難しいですよね。そんな時に便利なのが、Format関数です。

以下のように変換後の表示を指定して、日付を文字列に変換できます。

Format関数の使い方:

上記は、「2020/01/01」のように年月日を表示する例です。

Formatで使える日付・日時に関する指定方法は、以下のとおりです。
※以下は、「2020/12/18 12:30:15」を指定した場合の例です。

・yyyy
意味:年
値の例:2020

・MM
意味:月
値の例:12

・dd
意味:日
値の例:18

・hh
意味:時
値の例:12

・mm
意味:分
値の例:30

・ss
意味:秒
値の例:15

月の指定が大文字の「MM」、分の指定が小文字の「mm」になっていることに注意してください。

VB.NETで日付を文字列にフォーマット変換するサンプルコード

次に、VB.NETで日付を文字列にフォーマット変換する、サンプルを解説します。

サンプルコードは、以下のとおりです。

実行結果:

「Now.ToShortDateString」では、現在の日時を「YYYY/MM/DD形式」に置換し、結果を変数「resultToShortDateString」に格納しています。

また、「Format(Now, “yyyy/MM/dd”)」ではFormat関数を使い、「YYYY/MM/DD形式」に置換した結果を、変数「resultFormat」に格納しています。

そしてその結果を、「Console.WriteLine」で出力しているサンプルです。

どちらも同じ結果になっていますが、Format関数の方が汎用性は高いです。そのため、Format関数の使い方を覚えておくのがおすすめです。

事前にフォーマット変換できるかチェックする方法とは?

「日付を文字列に変換する方法を解説しているけど、そもそも変換が可能かチェックする方法はないの?」と思った方もいるのではないでしょうか。

必ず日付型のデータが入るよう処理を作っていれば、問題ないかもしれません。ただ、画面入力した値を利用する場合や、予期せぬ値が来るケースはよくあります。

そんな時に便利なのが、IsDate関数です。IsDate関数を使えば、以下のように日付型になっているかチェックできます

サンプルコード:

実行結果:

変数「boolDate1」には、先ほどサンプルで使用した「Now」を使っており、変数「boolDate2」には文字列「test」を入れています。

結果が、「boolDate1」のみTrueになっていますよね。このように、日付型かどうかチェックができるのです。

IsDate関数でチェック後に、Format関数で文字列に変換するサンプルは、以下のとおりです。

サンプルコード:

実行結果:

上記は、日付型になっているかIF文で事前にチェックする処理を追加した、サンプルコードです。

ここまで出来れば、フォーマット変換上手くできずエラーが起こる心配が少なくなります。ぜひ、覚えておきましょう。

まとめ

今回は、VB.NETで日付を文字列にフォーマット変換する方法を解説しました。

変換方法はいろいろありますが、Format関数が応用的に使いやすく、おすすめです。また、最後に解説したIsDate関数 + IF文を使ったチェックを入れると、よりエラーが起こりにくいコードになります。

ぜひ、実際にコードを書いて動かしてみてくださいね!


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

求人一覧

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)