2011-04-19 137 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"))