ここではVB.NETで西暦を和暦に変換する方法と、和暦を西暦に変換する方法を紹介します。

西暦を和暦に変換する

「平成30年」のように日付を和暦で表示するには、カルチャを日本語(ja-JP)にしてSystem.Globalization.JapaneseCalendarクラスを使う必要があります。
また、「g」というカスタム書式指定文字列で和暦の元号を表示できます。

Dim days As New DateTime(2021, 3, 5, 8, 4, 6)

' カルチャを日本語(ja-JP)にする
Dim ci As New System.Globalization.CultureInfo("ja-JP", False)
ci.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar()

' 和暦年月日
Console.WriteLine(days.ToString("gy年MM月dd日", ci))
' 実行結果:令和3年03月05日


西暦を和暦に変換する

和暦の日付を西暦に変換するには、和暦の文字列をCType関数でDate型に変換して、西暦年のカスタム書式指定文字列を使用します。

Dim days As Date = CType("令和3年03月05日", Date)

' 西暦年月日
Console.WriteLine(days.ToString("yyyy年MM月dd日"))
' 実行結果:2021年03月05日


以上、VB.NETで西暦を和暦に変換する方法と、和暦を西暦に変換する方法について解説しました。