ETH官方钱包

前往
大廳
主題

西元年轉民國年

Yang | 2022-08-13 15:44:23 | 巴幣 2 | 人氣 367

大原則就是別在程式碼內出現1911
(如果有的話,2024/2/29前都還來得及修正...)

參考微軟的TaiwanCalendar (public class TaiwanCalendar : System.Globalization.Calendar)


//西元年輸出民國年時間格式
static string ToStringWithROCYear(this DateTime obj, in string format = "yyy/MM/dd")
{
    System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("zh-TW");
    culture.DateTimeFormat.Calendar = new System.Globalization.TaiwanCalendar();

    return obj.ToString(format, culture);
}

單元測試:
new DateTime(2024, 2, 29).ToString("yyy/MM/dd");
"2024/02/29"
new DateTime(2024, 2, 29).AddYears(-1911).ToString("yyy/MM/dd");
"113/02/28"
new DateTime(2024, 2, 29).ToStringWithROCYear("yyy/MM/dd");
"113/02/29"
new System.Globalization.TaiwanCalendar().GetYear(DateTime.Now);
111

過去也曾經遇到客戶端程式執行異常,原因是客戶的Windows系統時間是民國年的情況
當時是請客戶改成西元時間解決異常,但沒有找出在民國年的系統時間上程式會異常的根本原因
實務上在客戶端電腦執行的程式,甚麼情況都有可能發生
因此至少程式的log要紀錄完整且清楚,才能推敲出問題可能原因,尋找解決方法
送禮物贊助創作者 !
0
留言

創作回應

更多創作