擴充 DateTime 轉換顯示民國年
- 2010-01-16
- 31500
- 0
將西元轉換為民國年是台灣開發者經常遇到的問題,在這之前demo都是很自然的把年份-1911拿達成,但客戶要求顯示的日期需要有星期,因為減了1911年星期會相差一天,於是就乾脆直接擴充 DataTime 作一個轉換民國年的擴充方法。
/// <summary> /// 轉換為民國年 /// </summary> ///<param name="format">標準格式化語法</param> /// <returns></returns> static public string ChangeTaiwanCalendar(this DateTime x, string format) { DateTime now = x; TaiwanCalendar tc = new TaiwanCalendar(); Regex regex = new System.Text.RegularExpressions.Regex(@"[yY]+"); format = regex.Replace(format, tc.GetYear(x).ToString("000")); return x.ToString(format); }
使用方式相當的直覺
DateTime.Now.ChangeTaiwanCalendar("yyyy-MM-dd");
就會顯示099-01-15
看Code就知道傳入在多的y也沒有用...因為民國一百年就要到了,所以預設的年位都是三位數,至於後面想怎麼改就是都可以的。
<%=DateTime.Now.ChangeTaiwanCalendar("yyyy-MM-dd ddd") %>
就會顯示 099-01-16 星期六
回應討論