C# DateTime.Now.DayOfWeek.ToString()和CultureInfo
我有密码:C# DateTime.Now.DayOfWeek.ToString()和CultureInfo,c#,asp.net,datetime,cultureinfo,C#,Asp.net,Datetime,Cultureinfo,我有密码: DateTime.Now.DayOfWeek.ToString() 这给了我一个英文的星期日名称,我想要德语版本,如何在这里添加CultureInfo以获得德语的星期日名称?是一个枚举,因此上面的ToString方法不区分区域性 如果坚持使用DayOfWeek,则需要编写一个函数,将枚举值转换为相应的德语字符串: string DayOfWeekGerman(DayOfWeek dow) { switch(dow) { case(DayOfWeek.S
DateTime.Now.DayOfWeek.ToString()
这给了我一个英文的星期日名称,我想要德语版本,如何在这里添加CultureInfo以获得德语的星期日名称?是一个枚举,因此上面的ToString
方法不区分区域性
如果坚持使用DayOfWeek
,则需要编写一个函数,将枚举值转换为相应的德语字符串:
string DayOfWeekGerman(DayOfWeek dow)
{
switch(dow)
{
case(DayOfWeek.Sunday)
return "German Sunday";
case(DayOfWeek.Monday)
return "German Monday";
...
}
}
更好的方法是直接使用ToString
fromDateTime
:
CultureInfo german = new CultureInfo("de-DE");
string dayName = DateTime.Now.ToString("dddd", german);
您可以使用德语
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”,新系统。全球化。文化信息(“de”))
您可以使用此代码以相同的语言返回日名
CultureInfo myCI = new CultureInfo("ar-EG");
MessageBox.Show(myCI.DateTimeFormat.GetDayName(DayOfWeek.Friday));
注意:DateTime
返回一个DayOfWeek
枚举,因此我使用该代码从
另一个枚举我喜欢这个:
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);
本文提到了本地化名称的
DateTime.ToString(String)
或DateTime.ToString(String,IFormatProvider)
——无需为其编写函数。
var culture = new System.Globalization.CultureInfo("de-DE");
var day = uiDateTime.GetDayOfWeek(culture);