I have the code:
DateTime.Now.DayOfWeek.ToString()
That give's me the english day of the week name, I want to have the german version, how to add CultureInfo here to get the german day of the week name?
I have the code:
DateTime.Now.DayOfWeek.ToString()
That give's me the english day of the week name, I want to have the german version, how to add CultureInfo here to get the german day of the week name?
var culture = new System.Globalization.CultureInfo("de-DE");
var day = culture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek);
You can use the DateTimeFormat.DayNames
property of the german CultureInfo
.
For example:
CultureInfo german = new CultureInfo("de-DE");
string sunday = german.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday];
DayOfWeek
is an enumeration, so the ToString
method on it is not culture sensitive.
You will need to write a function to convert the Enum value to a corresponding string in German, if you insist on using DayOfWeek
:
string DayOfWeekGerman(DayOfWeek dow)
{
switch(dow)
{
case(DayOfWeek.Sunday)
return "German Sunday";
case(DayOfWeek.Monday)
return "German Monday";
...
}
}
A better approach is to use ToString
from DateTime
directly:
CultureInfo german = new CultureInfo("de-DE");
string dayName = DateTime.Now.ToString("dddd", german);
This is the solution in Visual Basic
Dim GermanCultureInfo As Globalization.CultureInfo = New Globalization.CultureInfo("de-DE")
Return GermanCultureInfo.DateTimeFormat.GetDayName(DayOfWeek.Sunday)
The function of the solution is Obsolete by the way
DateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("de-DE"))
I like this one:
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);
}
}
And according to your question:
var culture = new System.Globalization.CultureInfo("de-DE");
var day = uiDateTime.GetDayOfWeek(culture);
DateTime date = DateTime.Today;
string day = date.ToString("dddd", new CultureInfo("es-MX"));
Console.WriteLine(day); //Jueves
only change "es-MX" for the region you want.
© 2022 - 2024 — McMap. All rights reserved.
DateTime.ToString(String)
or theDateTime.ToString(String, IFormatProvider)
for the localized name - there's no need to write out a function for it. – Jeneejenei