VB.NET 日付 フォーマット 文字列に変換

日付と現在時間を取得し、各項目別に処理するプログラムを紹介します。

日付、時間をフォーマット指定して表示(簡易)

Dim Now As DateTime = DateTime.Now

Console.WriteLine(Now.ToString())
'2020/09/08 8:21:04

Console.WriteLine(Now.ToShortDateString())
'2020/09/08

Console.WriteLine(Now.ToLongDateString())
'2020年9月8日

Console.WriteLine(Now.ToShortTimeString())
'8:21

Console.WriteLine(Now.ToLongTimeString())
'8:21:04

現在の日付、時刻を取得するには、DateTime.Nowを使います。

取得した日付、時間情報を
文字列として出力できる簡易的なメソッドをご紹介します。

メソッドの違いは、こんな感じです。

メソッド説明
ToString日付、時刻2020/09/08 08:30:50
ToShortDateString日付2020/09/08
ToLongDateString日付2020年9月8日
ToShortTimeString時刻15:30
ToLongTimeString時刻6:40:20

「標準の日時書式指定文字列」で指定する

Dim now As DateTime = DateTime.Now

Console.WriteLine(now.ToString("d"))
'2020/09/08

Console.WriteLine(now.ToString("D"))
'2020年9月8日

Console.WriteLine(now.ToString("t"))
'11:18

Console.WriteLine(now.ToString("T"))
'11:18:21

Console.WriteLine(now.ToString("f"))
'2020年9月8日 11:18

Console.WriteLine(now.ToString("F"))
'2020年9月8日 11:18:21

Console.WriteLine(now.ToString("g"))
'2020/09/08 11:18

Console.WriteLine(now.ToString("G"))
'2020/09/08 11:18:21

Console.WriteLine(now.ToString("y"))
'2020年9月

Console.WriteLine(now.ToString("m"))
'9月8日

Console.WriteLine(now.ToString("r"))
'Tue, 08 Sep 2020 11:20:27 GMT

Console.WriteLine(now.ToString("o"))
'2020-09-08T11:20:27.7634131+09:00

Console.WriteLine(now.ToString("s"))
'2020-09-08T11:23:29

Dim univ As Date = now.ToUniversalTime()
Console.WriteLine(univ.ToString("u"))
'2020-09-08 02:26:55Z

Console.WriteLine(univ.ToString("U"))
'2020年9月8日 2:26:55

ToStringメソッドに1文字の指定子を指定すると、規定された形式で表示されます。

日付、時間をフォーマット指定して表示(カスタム)

Dim now As DateTime = DateTime.Now

Console.WriteLine(now.ToString("yyyyMMdd HH:mm:ss"))
Console.WriteLine(now.ToString("yyMMdd(ddd) dddd hh:mm:ss"))
20200908 07:11:13
200908(火) 火曜日 07:11:13

取得した日時、時間情報を項目別にフォーマットするには、
ToStringメソッドと指定子を使います。

指定子の数は相当数ありますので、詳しくは下記リンク先をご覧ください。

Microsoft カスタム日時形式文字列

指定子説明日本英語
g年代、紀元西暦A.D.
yyyy20202020
MM月(01-12)0808
M月(1-12)33
dd日(01-31)0505
d日(1-31)11
dddd曜日火曜日Tuesday
ddd曜日(1文字のみ)Tue
HH時(01-23)0909
H時(1-23)22
tt午前 午後午前AM
h時(1-11)66
hh時(01-11)0404
mm分(01-59)0707
m分(1-59)99
ss秒(01-59)5050
スポンサーリンク

カルチャの変更

Dim Now As DateTime = DateTime.Now

Dim culture As New System.Globalization.CultureInfo("en-US")

Console.WriteLine(Now.ToString("F", culture))
'Tuesday, September 8, 2020 11:02:31 AM

英語での日付、時間表示ができます。

和暦、年号の表示

Dim Now As DateTime = DateTime.Now

Dim culture As New System.Globalization.CultureInfo("ja-JP", False)
culture.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar()

Console.WriteLine(Now.ToString("gy年M月d日", culture))
'令和2年9月8日

日本の和暦で表示した例です。

日付、時間をフォーマット指定して文字列に変換

Dim Now As DateTime = DateTime.Now

Dim strYear As String = Now.ToString("yyyy")
Dim strMonth As String = Now.ToString("MM")
Dim strDay As String = Now.ToString("dd")

Dim strHour As String = Now.ToString("HH")
Dim strMinute As String = Now.ToString("mm")
Dim strSecond As String = Now.ToString("ss")

日付、時間を文字列に変換したい時は、
同じようにToStringメソッドと指定子を使って、個別に取り出します。


これで、日時、現在時間のフォーマット表示と
文字列変換ができるようになりました。