ヘッダー
C# サンプル集
 

西暦と和暦を変換する

2020/7/19

→ Visual Basic のサンプルに切り替える

 

2012/6/27 を和暦で表示する

DateTime sourceDate = new DateTime(2012, 6, 27); //または DateTime sourceDate = DateTime.Parse("2012/6/27");

CultureInfo Japanese = new CultureInfo("ja-JP");
Japanese.DateTimeFormat.Calendar = new JapaneseCalendar();

string wareki = sourceDate.ToString("ggy年M月d日", Japanese);

System.Diagnostics.Debug.WriteLine(wareki); //平成24年6月27日 と表示されます。

 → Debug.WriteLineが表示される場所

メモ:1年は「元年」と表示されます。たとえば、「令和元年6月27日」。

メモ:1873年1月1日より前の西暦を正確な和暦で表現することはできません。1868年9月8日より前の西暦を和暦で表示しようとするとエラー(ArgumentOutOfRangeException)になります。

 

 

平成24年6月27日を西暦で表示する

string wareki = "平成24年6月27日";
DateTime seireki = DateTime.Parse(wareki, new CultureInfo("ja-JP"));

System.Diagnostics.Debug.WriteLine(seireki.ToString(@"yyyy\/MM\/dd")); //2012/06/27 と表示されます。

 → Debug.WriteLineが表示される場所

メモ:「令和」「平成」「昭和」「大正」「明治」の代わりに「令」「平」「昭」「大」「明」または「R」「H」「S」「T」「M」も使用できます。たとえば、"H24年6月27日"に対してもこの例は動作します。

メモ:昭和80年、平成40年のような元号の範囲を超過した年も該当する西暦に変換されます。

メモ:明治6年1月1日より前の和暦を正確に扱うことはできません。明治1年9月8日より前の和暦を日付に変換しようとするとエラー(FormatException)になります。