Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DateTime.Now.DayOfWeek.ToString()和CultureInfo_C#_Asp.net_Datetime_Cultureinfo - Fatal编程技术网

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
from
DateTime

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