Подтвердить что ты не робот

DateTime.Now.DayOfWeek.ToString() с CultureInfo

У меня есть код:

DateTime.Now.DayOfWeek.ToString()

Это даст мне английский день недели, я хочу иметь версию на немецком языке, как добавить CultureInfo здесь, чтобы получить немецкий день названия недели?

4b9b3361

Ответ 1

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

Ответ 2

Вы можете использовать свойство DateTimeFormat.DayNames для немецкого CultureInfo. Например:

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

Ответ 3

Это решение в 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"))

Ответ 4

DayOfWeek - это перечисление, поэтому метод ToString не чувствителен к культуре.

Вам нужно будет написать функцию для преобразования значения Enum в соответствующую строку на немецком языке, если вы настаиваете на использовании DayOfWeek:

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);

Ответ 5

Мне нравится этот:

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);

Ответ 6

var localWeekDayName = DateTime.Now.ToString("dddd");

Ответ 7

Вы можете использовать этот код, чтобы вернуть свое имя в качестве одного и того же языка

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

enter image description here note: DateTime возвращает перечисление DayOfWeek поэтому я использую код для возврата из другого перечисления