Datetime format – 顯示非西元的紀年方式

例如: 平成XX年

DateTime dt = DateTime.Parse("2014/09/26");
CultureInfo culture = CultureInfo.CreateSpecificCulture("ja-JP");
DateTimeFormatInfo dtfi = culture.DateTimeFormat;
dtfi.Calendar = new JapaneseCalendar();
Thread.CurrentThread.CurrentCulture = culture;
ViewData["date"] = dt.ToString("F", culture);

上面這個寫法會把整個 thread 的 culture info 改成 ja-JP,不是那麼好用。

下面的寫法比較好,利用CultureInfor做為formatter,在呼叫 .ToString() 時作用。

DateTime dt = DateTime.Parse("2014/09/26");
CultureInfo ci = new CultureInfo("ja-JP");
Calendar cal = new JapaneseCalendar();
ci.DateTimeFormat.Calendar = cal;
string strWareki = dt.ToString("ggyy/MM/dd", ci);
Console.WriteLine(strWareki);

Ref:

Culture Info
Language Culture Code

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料