【.NET】利用 CultureInfo 取得各語系星期顯示名稱

  • 2596
  • 0
  • 2017-08-10

  在 .NET 裡有個用來表示星期的列舉:DayOfWeek,使用起來很方便,但是有時候又不是那麼方便…

  為了取得中文顯示名稱,常常會看到類似底下的程式碼…

01:Switch_DayOfWeek

  日後有了新的需求,除了要可以取得中文名稱外,同時因應日本客戶的需求,也要可以取得日文名稱。

  於是我看到了底下的程式碼…

02:Multiple_Language_Switch_DayOfWeek

  偶爾硬幹一下是無傷大雅啦!反正看起來也簡單明瞭…

  但是當語言需求越來越多時,在可能根本不懂該語言的情況下,開發者只能用大量測試案例來確保程式(應該)是對的!?

  為何不交給 .NET 來處理呢?

  在命名空間 System.Globalization 下的 CultureInfo 類別,是用來表達文化特性(可視為地區或語系設定)的類別。

  使用類別中的屬性 DateTimeFormat 可以輕鬆地解決取得星期簡稱與完整名稱的需求。

使用 CurrentCulture 時,會以應用程式所在主機預設的地區或語系設定來進行轉換。

03:DayOfWeek_DisplayByCurrentCulture

如果想要顯示日文名稱怎麼辦?如果想要顯示中文名稱,可是應用程式所在主機的作業系統卻是英文版怎麼辦?

  參考各國語系對應表(Table of Language Culture Names, Codes, and ISO Values (PIA)),只要傳入對應的語系名稱,.NET 就會轉換為該語系的顯示名稱。

04:DayOfWeek_DisplayByCultureInfo

嘗試將自己的理解寫成文字紀錄,資料來源均來自於網路。

如有理解錯誤、引用錯誤或侵權,請多加指正與告知,讓我有更多的進步與改進的空間,謝謝!