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

时间:2011-04-19 13:02:20

标签: c# asp.net datetime cultureinfo

我有代码:

DateTime.Now.DayOfWeek.ToString()

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

6 个答案:

答案 0 :(得分:113)

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

答案 1 :(得分:13)

您可以使用德语DateTimeFormat.DayNames的{​​{1}}属性。 例如:

CultureInfo

答案 2 :(得分:6)

这是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"))

答案 3 :(得分:4)

DayOfWeek是一个枚举,因此ToString方法对文化不敏感。

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

string DayOfWeekGerman(DayOfWeek dow)
{

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

更好的方法是直接使用ToString中的DateTime

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

答案 4 :(得分:0)

我喜欢这个:

public static class DateTimeExtension
{
    public static string GetDayOfWeek(this DateTime uiDateTime, CultureInfo culture = null)
    {
        if (culture == null)
        {
            culture = Thread.CurrentThread.CurrentUICulture;
        }

        return culture.DateTimeFormat.GetDayName(uiDateTime.DayOfWeek);
    }
}

根据您的问题:

var culture = new System.Globalization.CultureInfo("de-DE");
var day = uiDateTime.GetDayOfWeek(culture);

答案 5 :(得分:-2)

您可以使用此代码以相同的语言返回您的姓名

CultureInfo myCI = new CultureInfo("ar-EG");   
MessageBox.Show(myCI.DateTimeFormat.GetDayName(DayOfWeek.Friday));

enter image description here 注意:DateTime返回一个DayOfWeek枚举,因此我使用代码从 另一个枚举