.NET で日付の文字列化2016年11月06日 00時04分04秒

西暦で表示したい場合。ex: 2016年11月6日 (日)

use System;
use System.Globalization;

var culture = new CultureInfo("ja-JP", false);
var todayText = DateTime.Today.ToString("yyyy年M月d日 (ddd)", culture);

和暦で表示したい場合。ex: 平成28年11月6日 (日)

use System;
use System.Globalization;

var culture = new CultureInfo("ja-JP", false);
culture.DateTimeFormat.Calendar = new JapaneseCalendar();
var todayText = DateTime.Today.ToString("gy年M月d日 (ddd)", culture);
  • 曜日を日本語で表示したいのであれば、どちらの場合でもカルチャ名 "ja-JP" のカルチャを指定する。
  • 和暦で表示したい場合は更に DateTimeFormat.Calendar を設定。西暦の場合は逆に設定してはいけない (フォーマット文字列を yyyy にしても年数の表示が狂ってしまう)。