DateTime.Now.DayOfWeek.ToString()与CultureInfo

|| 我有代码:
DateTime.Now.DayOfWeek.ToString()
那给我英语星期几的名字,我要有德语版本,如何在这里添加CultureInfo以获得德语星期几的名字?
已邀请:
var culture = new System.Globalization.CultureInfo(\"de-DE\");
var day = culture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek);
您可以使用德语
CultureInfo
DateTimeFormat.DayNames
属性。 例如:
CultureInfo german = new CultureInfo(\"de-DE\");
string sunday = german.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday];
这是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\"))
DayOfWeek
是一个枚举,因此其上的
ToString
方法对文化不敏感。 如果您坚持使用
DayOfWeek
,则需要编写一个将Enum值转换为德语对应字符串的函数:
string DayOfWeekGerman(DayOfWeek dow)
{

    switch(dow)
    {
      case(DayOfWeek.Sunday)
         return \"German Sunday\";
      case(DayOfWeek.Monday)
         return \"German Monday\";
      ...
    }
}
更好的方法是直接使用
DateTime
中的
ToString
CultureInfo german = new CultureInfo(\"de-DE\");
string dayName = DateTime.Now.ToString(\"dddd\", german);
我喜欢这一个:
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);
您可以使用此代码以相同的语言返回您的日期名称
CultureInfo myCI = new CultureInfo(\"ar-EG\");   
MessageBox.Show(myCI.DateTimeFormat.GetDayName(DayOfWeek.Friday));
注意:
DateTime
返回
DayOfWeek
枚举,因此我使用代码从 另一个枚举

要回复问题请先登录注册