5

国コード (en、de、fr) しかなく、この言語で平日を表示する必要があるとします。RegionInfo と CultureInfo については知っていますが、解決策が見つかりません。(たとえば)「en」から国情報を作成すると、DateTime情報がありません。最初に一致した Region だけを取得することもできます。たとえば、en の場合は en-US、de の場合は de-DE です。

DayNames に違いがあるかどうかはわかりませんが、月ごとに違いがあることはわかっています。de-DE Februar - de-AT Februar -- どうでもいい。それが「少し違う」かもしれない場合のイベント (Feber ではなく Februar を表示するため) - それはまだドイツ語です。

そして、それが私が達成したいことです - 月曜日に書いてください - 手に入れてモンタグを書いてください...

言語コードだけからリージョンを作成する方法はありますか?

4

7 に答える 7

6

この作品は役に立つかもしれません: "en" から CultureInfo に移動するには、より簡単な方法は次のとおりです。

CultureInfo ci = CultureInfo.CreateSpecificCulture("en")

2 番目の部分については、曜日の名前を尋ねていると思いますので、次のように書きます。

string[] names = ci.DateTimeFormat.DayNames 
于 2010-03-23T14:47:39.813 に答える
4

通常、API との戦いを始めるのは、「どうでもいい」と言うときです。

とにかく、これはうまくいくはずです:

var list = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
var ci = list.FirstOrDefault(c => c.IetfLanguageTag.StartsWith("de"));

var ri = new RegionInfo(ci.Name);
Console.WriteLine("Today = {0:dddd MMMM yyyy}", DateTime.Today);
于 2010-03-23T14:25:18.103 に答える
1

DateTime.Today.ToString("dddd", new CultureInfo("zh-TW"))

上記のコードは月曜日を星期一 (中国語ロケール) として出力します。

于 2012-01-30T10:33:11.830 に答える
1

これにより、文化のリストが表示されます。

    Dim ci As CultureInfo
    For Each ci In CultureInfo.GetCultures(CultureTypes.SpecificCultures)
        Console.WriteLine(ci.Name)
    Next

出力:ar-SA bg-BG ca-ES zh-TW cs-CZ da-DK de-DE el-GR en-US fi-FI fr-FR he-IL hu-HU is-IS it-IT ja-JP ko- KR nl-NL nb-NO pl-PL pt-BR ro-RO ru-RU hr-HR sk-SK sq-AL sv-SE th-TH tr-TR ur-PK id-ID uk-UA be-BY sl -SI et-EE lv-LV lt-LT fa-IR vi-VN hy-AM az-Latn-AZ eu-ES mk-MK af-ZA ka-GE fo-FO hi-IN ms-MY kk-KZ ky -KG sw-KE uz-Latn-UZ tt-RU pa-IN gu-IN ta-IN te-IN kn-IN mr-IN sa-IN mn-MN gl-ES kok-IN syr-SY dv-MV ar -IQ zh-CN de-CH en-GB es-MX fr-BE it-CH nl-BE nn-NO pt-PT sr-Latn-CS sv-FI az-Cyrl-AZ ms-BN uz-Cyrl-UZ ar-EG zh-HK de-AT en-AU es-ES fr-CA sr-Cyrl-CS ar-LY zh-SG de-LU en-CA es-GT fr-CH ar-DZ zh-MO de-LI en-NZ es-CR fr-LU ar-MA en-IE es-PA fr-MC ar-TN en-ZA es-DO ar-OM en-JM es-VE ar-YE en-029 es-CO ar- SY en-BZ es-PE ar-JO en-TT es-AR ar-LB en-ZW es-EC ar-KW en-PH es-CL ar-AE es-UY ar-BH es-PY ar-QA es -BO es-SV es-HN es-NI es-PR sma-NO bn-BD bs-Cyrl-BA tg-Cyrl-TJ en-SG en-MY mn-Mong-CN prs-AF wo-SN rw-RW qut-GT sah-RU gsw-FR co-FR rm-CH mi-NZ ug-CN br-FR moh-CA arn-CL ga-IE ii-CN sma-SE sr-Latn-BA quz-PE ig-NG kl-GL lb-LU ba-RU nso-ZA quz-BO yo-NG sms-FI ha-Latn -NG hr-BA fil-PH ps-AF fy-NL ne-NP am-ET iu-Cans-CA quz-EC si-LK smj-SE lo-LA km-KH cy-GB bo-CN se-SE smj -NO as-IN ml-IN se-FI or-IN sr-Cyrl-BA bn-IN en-IN dsb-DE tk-TM smn-FI oc-FR es-US se-NO mt-MT bs-Latn- BA zu-ZA xh-ZA tn-ZA tzm-Latn-DZ iu-Latn-CA hsb-DE-FI oc-FR es-US se-NO mt-MT bs-Latn-BA zu-ZA xh-ZA tn-ZA tzm-Latn-DZ iu-Latn-CA hsb-DE-FI oc-FR es-US se-NO mt-MT bs-Latn-BA zu-ZA xh-ZA tn-ZA tzm-Latn-DZ iu-Latn-CA hsb-DE

于 2010-03-23T14:52:36.663 に答える
0

"de" は NeutralCulture であるため、CultureInfo.GetCultureInfo("de") を試しても DateTimeFormat から DayNames を取得することはできません。

この場合、CultureInfo.CreateSpecificCulture("de") を実行することをお勧めします。これは、ニュートラルでないカルチャを作成するためです...「de」の場合、「de-DE」のカルチャを取得しました。 .NET の神々 :D

    CultureInfo tmp = CultureInfo.CreateSpecificCulture("de");

    string[] names = tmp.DateTimeFormat.DayNames;
    foreach(string name in names)
    {
        Console.WriteLine(name);
    }
于 2010-03-23T14:52:30.100 に答える
0

Dim days As String() Dim months As String() Dim cul As New System.Globalization.CultureInfo("de-DE") months = cul.DateTimeFormat.MonthNames days = cul.DateTimeFormat.DayNames

于 2010-03-23T14:39:49.077 に答える
0

これを試して:-

string culture = "あなたの文化"

CultureInfo myCulture = new CultureInfo(カルチャー);

DateTimeFormatInfo dtfi = myCulture .DateTimeFormat;

dayString = dtfi.GetDayName( ここにあなたの日付.. );

チャーリー・G

于 2010-03-23T14:43:11.990 に答える