2011-04-19 60 views

回答

98
var culture = new System.Globalization.CultureInfo("de-DE"); 
var day = culture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek); 
+0

工作得很好,非常感謝你:) – Kovu 2011-04-19 13:13:19

4

DayOfWeek是一個枚舉,所以其上的ToString方法不是文化敏感的。

你需要編寫一個函數來枚舉值轉換爲對應的字符串,在德國,如果你堅持要用DayOfWeek

string DayOfWeekGerman(DayOfWeek dow) 
{ 

    switch(dow) 
    { 
     case(DayOfWeek.Sunday) 
     return "German Sunday"; 
     case(DayOfWeek.Monday) 
     return "German Monday"; 
     ... 
    } 
} 

一個更好的辦法是使用ToStringDateTime直接:

CultureInfo german = new CultureInfo("de-DE"); 
string dayName = DateTime.Now.ToString("dddd", german); 
+0

好了,我怎麼得到德國人的名字? – Kovu 2011-04-19 13:09:15

+0

該文章提到'DateTime.ToString(String)'或'DateTime.ToString(String,IFormatProvider)'爲本地化的名稱 - 沒有必要爲它寫出一個函數。 – 2011-04-19 13:11:59

13

您可以使用德國CultureInfoDateTimeFormat.DayNames財產。 例如:

CultureInfo german = new CultureInfo("de-DE"); 
string sunday = german.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday]; 
5

這是在Visual Basic中

Dim GermanCultureInfo As Globalization.CultureInfo = New Globalization.CultureInfo("de-DE") 

Return GermanCultureInfo.DateTimeFormat.GetDayName(DayOfWeek.Sunday) 

解決方案解決方案的功能是過時的方式 DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("de-DE"))