和暦が出来ないというので調べてみました。
http://blogs.wankuma.com/ogiogi/archive/2006/05/20/25322.aspx
最初に思いつくのはこの流れでしょうか。
System.Globalization.Calendar calendar = new System.Globalization.JapaneseCalendar();
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ja-JP", false);
culture.DateTimeFormat.Calendar = calendar;
Application.CurrentCulture = culture;
this.dateTimePicker1.CustomFormat = "gg yy年MM月dd日 dddd tt hh:mm:ss";
this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
うまくいきません。
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
System.Globalization.Calendar calendar = new System.Globalization.JapaneseCalendar();
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ja-JP");
culture.DateTimeFormat.Calendar = calendar;
label1.Text = dateTimePicker1.Value.ToString("gg yy年MM月dd日 dddd tt hh:mm:ss", culture);
}
label1には表示されます。
次に試したのはシステム設定を変更する方法。
コントロールパネル-地域と言語のオプション-地域オプション-カスタマイズ
日付-カレンダーの種類を和暦にします。
this.dateTimePicker1.CustomFormat = "gg yy年MM月dd日 dddd tt hh:mm:ss";
this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
うまくいきました。
しかし、ユーザーにシステム設定させるわけにもいかない局面ではどうしようもないのですかね。