C# 周内的文化变化

C# 周内的文化变化,c#,C#,我有一个字符串“Saturday”,我想把它改成其他语言文化,比如普洛什语(波兰语)。如何在C#中进行更改。此代码示例将文化信息更改为意大利语: CultureInfo itCI = new CultureInfo("it-IT"); Thread.CurrentThread.CurrentCulture = itCI; 然后,要获得一周中正确的一天(今天),您可以执行以下操作: DayOfWeek giornoSet = DateTime.Now.DayOfWeek; string gior

我有一个字符串“Saturday”,我想把它改成其他语言文化,比如普洛什语(波兰语)。如何在C#中进行更改。

此代码示例将文化信息更改为意大利语:

CultureInfo itCI = new CultureInfo("it-IT");
Thread.CurrentThread.CurrentCulture = itCI;
然后,要获得一周中正确的一天(今天),您可以执行以下操作:

DayOfWeek giornoSet = DateTime.Now.DayOfWeek;
string giornoSetS =CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(giornoSet);
以下是如何从字符串中获取DayOfWeek:

DayOfWeek wednesday = 
  (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "Wednesday");

使用
CultureInfo.CreateSpecificCulture()

CultureInfo.CreateSpecificCulture("pl-PL").DateTimeFormat.GetDayName(DayOfWeek.Saturday)
要获取原始字符串的
DayOfWeek
,可以使用
Enum.TryParse(“星期六”)

DayOfWeek-day;
if(特里帕尔斯(星期六,外出日))
{
var dayInPolish=CultureInfo.CreateSpecificCulture(“pl”).DateTimeFormat.GetDayName(天);
}
请注意,
Enum.TryParse
仅在输入值为英语时有效。您可以使用
CultureInfo.DateTimeFormat.DayNames
以其他语言查找日期名称

您可以尝试以下方法:

DateTime.Now.ToString("dddd", System.Globalization.CultureInfo.CreateSpecificCulture("pl-PL"))
[编辑]

您可以使用此功能:

private static string TranslateDay(string dayInStringFormat, string culture)
{
    try
    {
        return CultureInfo.CreateSpecificCulture(culture).DateTimeFormat
            .GetDayName((DayOfWeek)Enum.Parse(typeof(DayOfWeek), dayInStringFormat));
    }
    catch (Exception)
    {
        return null;
    }
}
您可以使用:

var culturepland=CultureInfo.CreateSpecificCulture(“pl”);
周道指;
if(特里帕斯(星期六,道指外))
{
字符串day=CulturePland.DateTimeFormat.GetDayName(陶氏);
Console.Write(day);//sobota
}

以下各项应起作用:

var inputDay = "Saturday";
var SourceCulture = new System.Globalization.CultureInfo("en-gb");
var DestinationCulture = new System.Globalization.CultureInfo("pl-pl");
var dayInt = Array.IndexOf(SourceCulture.DateTimeFormat.DayNames, inputDay);
Console.WriteLine(DestinationCulture.DateTimeFormat.GetDayName((DayOfWeek)dayInt));
请注意,如前所述,它在星期几区分大小写,如果找不到星期几,将抛出错误,因此需要添加一些检查


需要注意的是,它指定了一个源区域性,因此如果您有法语名称,您可以通过更改源区域性来使用它。

这无助于将字符串“Saturday”更改为其他区域性中的等效字符串。这仍然不考虑起始字符串“Saturday”。您确实需要一行代码
string dayname=“Saturday”或类似内容”将正确使用问题的输入。我想,为了完成此答案,您需要澄清如何从字符串“Saturday”到
DayOfWeek.Saturday
编辑。错过了这一部分:)他不想在特定的文化中度过今天。他想要字符串“星期六”。
var culturePoland = CultureInfo.CreateSpecificCulture("pl-PL");
DayOfWeek dow;
if (Enum.TryParse<DayOfWeek>("Saturday", out dow))
{
    string day = culturePoland.DateTimeFormat.GetDayName(dow);
    Console.Write(day); // sobota
}
var inputDay = "Saturday";
var SourceCulture = new System.Globalization.CultureInfo("en-gb");
var DestinationCulture = new System.Globalization.CultureInfo("pl-pl");
var dayInt = Array.IndexOf(SourceCulture.DateTimeFormat.DayNames, inputDay);
Console.WriteLine(DestinationCulture.DateTimeFormat.GetDayName((DayOfWeek)dayInt));