J'ai le code:
DateTime.Now.DayOfWeek.ToString()
Cela me donne le nom anglais du jour de la semaine, je souhaite avoir la version allemande, comment ajouter CultureInfo ici pour obtenir le nom du jour allemand de la semaine?
var culture = new System.Globalization.CultureInfo("de-DE");
var day = culture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek);
Vous pouvez utiliser la propriété DateTimeFormat.DayNames
de la version allemande CultureInfo
. Par exemple:
CultureInfo german = new CultureInfo("de-DE");
string sunday = german.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday];
Ceci est la solution dans Visual Basic
Dim GermanCultureInfo As Globalization.CultureInfo = New Globalization.CultureInfo("de-DE")
Return GermanCultureInfo.DateTimeFormat.GetDayName(DayOfWeek.Sunday)
La fonction de la solution est obsolète en passant DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("de-DE"))
DayOfWeek
est une énumération, la méthode ToString
n'est pas sensible à la culture.
Vous devrez écrire une fonction pour convertir la valeur Enum en une chaîne correspondante en allemand, si vous insistez pour utiliser DayOfWeek
:
string DayOfWeekGerman(DayOfWeek dow)
{
switch(dow)
{
case(DayOfWeek.Sunday)
return "German Sunday";
case(DayOfWeek.Monday)
return "German Monday";
...
}
}
Une meilleure approche consiste à utiliser ToString
à partir de DateTime
directement:
CultureInfo german = new CultureInfo("de-DE");
string dayName = DateTime.Now.ToString("dddd", german);
J'aime celui la:
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);
}
}
Et selon votre question:
var culture = new System.Globalization.CultureInfo("de-DE");
var day = uiDateTime.GetDayOfWeek(culture);