現在の (または指定された) CurrentCulture オブジェクトの既定の DayNames をオーバーライドする必要があります。
私はいくつかの方法でこれを達成しようとしました:
1) Global.asax レベル:
protected void Application_PreRequestHandlerExecute(object sender, EventArgs e) {
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(XXX);
string[] newNames = { YYY };
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames = newNames;
}
2) コントローラ レベル:
public HomeController() {
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(XXX);
string[] newNames = { YYY };
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames = newNames;
}
指定された「CurrentCulture」オブジェクトは、(指定された XXX カルチャ名に従って) 正しく適用されます。式を介して、文化固有の曜日名を確認できます@DateTime.Now.ToString("ddd")
。ただし、指定された「DayNames」オブジェクトは無視されているようです (ただし、「CurrentCulture」と「DayNames」の両方のプロパティがデバッガーで正しく適用されていることがわかります)。