3

「Saturday」という文字列があります。これを他の言語文化、たとえばPloish(Poland)に変更したいと思います。C#で変更する方法。

4

5 に答える 5

2

あなたはこれを試すことができます:

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;
    }
}
于 2012-12-06T13:08:20.773 に答える
2

このコード例は、カルチャ情報をイタリア語に変更します。

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");
于 2012-12-06T13:01:42.590 に答える
2

を使用CultureInfo.CreateSpecificCulture()して、必要なインスタンスを作成してから、CultureInfoを使用DateTimeFormat.GetDayName()して、必要な特定の日の名前を取得します。

CultureInfo.CreateSpecificCulture("pl-PL").DateTimeFormat.GetDayName(DayOfWeek.Saturday)

元の文字列のを取得するにはDayOfWeek、次を使用できますEnum.TryParse<DayOfWeek>("Saturday")

DayOfWeek day;

if (Enum.TryParse<DayOfWeek>("Saturday", out day))
{
    var dayInPolish = CultureInfo.CreateSpecificCulture("pl-PL").DateTimeFormat.GetDayName(day);
}

Enum.TryParse入力値が英語の場合にのみ機能することに注意してください。CultureInfo.DateTimeFormat.DayNames他の言語で日の名前を見つけるために使用できます。

他のカルチャコードのリストは次のとおりです。

于 2012-12-06T13:02:14.283 に答える
1

あなたが使用することができますDateTimeFormat.GetDayName

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
}

デモ

于 2012-12-06T13:13:18.163 に答える
1

以下が機能するはずです。

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

書かれているように、曜日では大文字と小文字が区別され、曜日が見つからない場合はエラーがスローされるため、いくつかのチェックを追加する必要があることに注意してください。

注目すべきは、これはソース カルチャを指定するため、名前がフランス語である場合は、ソース カルチャを変更するだけでこれを使用できることです。

于 2012-12-06T13:15:34.710 に答える