トップ回答者
DateTimePickerで和暦を表示させる方法

質問
-
こんにちわ。
現在、Visual C# 2008でシステムの開発に参加しています。
C#どころか、すべての言語において初心者です。
DateTimePickerで和暦を表示させる方法について、助言をお願いします。
下記のサイトを参考にしてみたのですが、上手くいきません。
http://blogs.wankuma.com/mnow/archive/2006/05/21/26510.aspx
和暦で表示されることはされるのですが、年号(平成や昭和など)が表示できません。
"21年8月7日"ではなく、"平成21年8月7日"のように表示させたいのですが、
どうすれば実現可能でしょうか?
どうぞ、よろしくお願いします。
回答
-
私のページですね。
dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom; が要りますが「和暦で表示されることはされるのですが」と書いてあるのでこれはやってあるのでしょう。
やってみましたがきちんと表示されていました。
この場合の肝は「 dateTimePicker1.Value.ToString("gg yy", culture) 」なのでこの値を Debug.WriteLine とかで表示させて確認してみてください。
public partial class Form1 : Form { public Form1() { InitializeComponent(); } 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; this.dateTimePicker1.CustomFormat = dateTimePicker1.Value.ToString("gg yy", culture) + "年MM月dd日 dddd tt hh:mm:ss"; } private void Form1_Load(object sender, EventArgs e) { dateTimePicker1_ValueChanged(dateTimePicker1, new EventArgs()); } }
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12- 回答としてマーク 高橋 春樹 2009年8月14日 5:10
すべての返信
-
私のページですね。
dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom; が要りますが「和暦で表示されることはされるのですが」と書いてあるのでこれはやってあるのでしょう。
やってみましたがきちんと表示されていました。
この場合の肝は「 dateTimePicker1.Value.ToString("gg yy", culture) 」なのでこの値を Debug.WriteLine とかで表示させて確認してみてください。
public partial class Form1 : Form { public Form1() { InitializeComponent(); } 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; this.dateTimePicker1.CustomFormat = dateTimePicker1.Value.ToString("gg yy", culture) + "年MM月dd日 dddd tt hh:mm:ss"; } private void Form1_Load(object sender, EventArgs e) { dateTimePicker1_ValueChanged(dateTimePicker1, new EventArgs()); } }
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12- 回答としてマーク 高橋 春樹 2009年8月14日 5:10
-
こんにちは、フォーラムオペレーターの高橋春樹です。
えムナウさん、いつもお世話になってます。
サンプルコードの投稿ありがとうございます。
分かり易くて、大変助かります。Aboutyさん、初めまして。
MSDNフォーラムのご利用ありがとうございます。えムナウさんからアドバイスを頂いたと思うのですが、その後如何でしょうか?
えムナウさんもおっしゃってるように、dateTimePicker1.FormatをCustumに設定する必要があるのでお忘れなく。今回えムナウさんからの投稿が、有用なものだと思いましたので、勝手ながら回答マークを付けさせて頂きました。
次回からで良いのですが、もし問題が解決した場合は、Aboutyさんの方で、回答マークを付けて頂くと助かります。
問題が解決していない場合は、状況をお伝えして頂ければと思います(^-^)今後ともMSDNフォーラムを宜しくお願いします。
マイクロソフト株式会社 フォーラム オペレータ 高橋春樹