2013-07-03 39 views
3

我無法弄清楚如何在.NET 2.0中正確定位DateTime.DayOfWeek如何本地化DateTime.DayOfWeek?

實施例:

DateTime date = DateTime.Now; 

// Works fine 
string localizedDate = date.ToString("D", new CultureInfo("fr-FR")); 

// Nope... 
string localizedDay = date.DayOfWeek.ToString("D", new CultureInfo("fr-FR")); 

我限於.NET 2.0,是什麼問題?

+0

我已經更新了你的文章,但在未來,請嘗試更新您的代碼片段,讓它們看起來像代碼,而不是標準文本。最簡單的方法是突出顯示您的示例代碼,然後單擊代碼格式按鈕(這是帶有兩個括號的圖片)。 – RLH

+0

@RLH Apoligies,點擊後張貼有點快。感謝您的編輯。 – Gregzo

回答

2

DateTimeFormatInfosupported since .NET 2.0,所以情況並非如此。

嘗試此代替:

DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("fr-FR")); 
+0

我正要分享這些信息。僅供參考,問題在於您正在訪問枚舉類型並嘗試將其格式化爲日期。你想要做的是處理完整日期值。使用'「dddd」'格式選項明確地告訴文本處理器只寫日期的日期名稱部分。 – RLH

+0

非常感謝,固執地試圖讓DateTime.DayOfWeek.ToString工作...您的回覆也指出我在MS的文檔中的這個頁面,爲了未來的讀者:http://msdn.microsoft.com/en-us /library/8kb3ddd4.aspx(列出所有自定義格式說明符)。 – Gregzo

+0

很高興它有幫助。感謝您的詳細信息@RLH –

2

你的第二個例子:

string localizedDay = date.DayOfWeek.ToString("D", new CultureInfo("fr-FR")); 

是使用Enumeration Format String,其中 「d」 格式說明的意思是 「返回最短表示可能的」。

你可以嘗試:

string localizedDay = new CultureInfo("fr-FR").DateTimeFormat.DayNames[(int)date.DayOfWeek]; 
+0

編碼社區的幫助速度和意願永遠不會令我驚歎......非常感謝,您的示例比MS .NET文檔更有用。 – Gregzo