具有CultureInfo的DateTime.Now.DayOfWeek.ToString()

Kov*_*ovu 66 c# asp.net datetime cultureinfo

我有代码:

DateTime.Now.DayOfWeek.ToString()
Run Code Online (Sandbox Code Playgroud)

这给了我一周的英文日名称,我希望有德文版,如何在这里添加CultureInfo以获得德文日的名字?

Die*_*res 120

var culture = new System.Globalization.CultureInfo("de-DE");
var day = culture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek);
Run Code Online (Sandbox Code Playgroud)


小智 13

您可以使用DateTimeFormat.DayNames德国的财产CultureInfo.例如:

CultureInfo german = new CultureInfo("de-DE");
string sunday = german.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday];
Run Code Online (Sandbox Code Playgroud)


小智 6

这是Visual Basic中的解决方案

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

Return GermanCultureInfo.DateTimeFormat.GetDayName(DayOfWeek.Sunday)
Run Code Online (Sandbox Code Playgroud)

顺便说一下,解决方案的功能已经过时了 DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("de-DE"))


Ode*_*ded 5

DayOfWeek是一个枚举,所以ToString它的方法不是文化敏感的。

如果您坚持使用,您将需要编写一个函数将 Enum 值转换为相应的德语字符串DayOfWeek

string DayOfWeekGerman(DayOfWeek dow)
{

    switch(dow)
    {
      case(DayOfWeek.Sunday)
         return "German Sunday";
      case(DayOfWeek.Monday)
         return "German Monday";
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

更好的方法是直接使用ToStringfrom DateTime

CultureInfo german = new CultureInfo("de-DE");
string dayName = DateTime.Now.ToString("dddd", german);
Run Code Online (Sandbox Code Playgroud)