擴充 DateTime 轉換顯示民國年
- 2010-01-16
- 34072
- 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也沒有用...因為民國一百年就要到了,所以預設的年位都是三位數,至於後面想怎麼改就是都可以的。
看Code就知道傳入在多的y也沒有用...因為民國一百年就要到了,所以預設的年位都是三位數,至於後面想怎麼改就是都可以的。
<%=DateTime.Now.ChangeTaiwanCalendar("yyyy-MM-dd ddd") %>
就會顯示 099-01-16 星期六









 Roslyn 魔法工坊:打造你的 Source Generator [2025-12-20]開課 共7H
Roslyn 魔法工坊:打造你的 Source Generator [2025-12-20]開課 共7H
回應討論