2008年8月6日 星期三

DateTime.Parse("中華民國97年2月29日")?

同事問到,如何將 "中華民國97年2月29日" 的字串轉成 DateTime, 與將 DateTime 輸出成 "中華民國97年2月29日"

沒遇過這個問題。

打開 MSDN, 找到了 TaiwanCalendar

開始寫程式囉

      DateTime dt = new DateTime(2008, 2, 29);
      TaiwanCalendar c = new TaiwanCalendar();
      CultureInfo ci = new CultureInfo("zh-TW", true);
      ci.DateTimeFormat.Calendar = c;
      Thread.CurrentThread.CurrentCulture = ci;
      Console.WriteLine(dt.ToLongDateString());

      DateTime dt2;

      dt2 = DateTime.Parse("97-02-29", ci);
      Console.WriteLine(dt2.ToLongDateString());

      dt2 = DateTime.Parse("97/02/29", ci);
      Console.WriteLine(dt2.ToLongDateString());

      dt2 = DateTime.Parse("97-2-29", ci);
      Console.WriteLine(dt2.ToLongDateString());

      dt2 = DateTime.ParseExact("97|02|29", "yy|MM|dd", ci);
      Console.WriteLine(dt2.ToLongDateString());

      dt2 = DateTime.ParseExact("中華民國97年2月29日", "中華民國yy年M月dd日", ci);
      Console.WriteLine(dt2.ToLongDateString());

      dt2 = DateTime.ParseExact("中華民國97年2月29日", "中華民國yy年M月dd日", ci);
      Console.WriteLine(dt2.ToLongDateString());

      dt2 = DateTime.Parse("97/02/29 下午 3:46:01");
      Console.WriteLine(dt2.ToString());

輸出的結果如下
97年2月29日
97年2月29日
97年2月29日
97年2月29日
97年2月29日
97年2月29日

sample code download here

沒有留言:

Share with Facebook