我有代码:
DateTime.Now.DayOfWeek.ToString()
那给我一周的英文日名称,我希望有德文版,如何在这里添加CultureInfo以获得德文日的名字?
答案 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)