日付と現在時間を取得し、各項目別に処理するプログラムを紹介します。
日付、時間をフォーマット指定して表示(簡易)
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メソッドと指定子を使います。
指定子の数は相当数ありますので、詳しくは下記リンク先をご覧ください。
指定子 | 説明 | 日本 | 英語 |
g | 年代、紀元 | 西暦 | A.D. |
yyyy | 年 | 2020 | 2020 |
MM | 月(01-12) | 08 | 08 |
M | 月(1-12) | 3 | 3 |
dd | 日(01-31) | 05 | 05 |
d | 日(1-31) | 1 | 1 |
dddd | 曜日 | 火曜日 | Tuesday |
ddd | 曜日(1文字のみ) | 火 | Tue |
HH | 時(01-23) | 09 | 09 |
H | 時(1-23) | 2 | 2 |
tt | 午前 午後 | 午前 | AM |
h | 時(1-11) | 6 | 6 |
hh | 時(01-11) | 04 | 04 |
mm | 分(01-59) | 07 | 07 |
m | 分(1-59) | 9 | 9 |
ss | 秒(01-59) | 50 | 50 |
スポンサーリンク
カルチャの変更
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メソッドと指定子を使って、個別に取り出します。
これで、日時、現在時間のフォーマット表示と
文字列変換ができるようになりました。