Domanda

Si supponga che ho solo un codice del paese (it, de, fr) e ho bisogno di visualizzare i giorni della settimana in questa lingua. So di RegionInfo e CultureInfo - ma non riesco a trovare una soluzione. Se creo un Info nazionali da (per un esempio) "en" Non ho informazioni DateTime in esso. Sarebbe anche OK per basta prendere la prima regione corrispondente. Per un esempio en-US per en o de-DE per de.

Non so se ci sono differenze di dayNames ma so che ci sono alcuni per i mesi. de-DE Febbraio - de-AT Feber - in ogni caso non mi interessa. Evento se può essere "un po 'diverso" (per vedere Febbraio invece di Feber) -. È ancora tedesco

E questo è quello che voglio achive - ottenere en una scrittura Lunedi - ottenere de e scrivere Montag ...

C'è un modo per creare una regione solo da un codice di linguaggio?

È stato utile?

Soluzione

Questo pezzo può essere utile: per andare da "en" al CultureInfo, un modo più veloce è

CultureInfo ci = CultureInfo.CreateSpecificCulture("en")

Per la seconda parte, credo che si sta chiedendo i nomi dei giorni, in modo da vorrei scrivere

string[] names = ci.DateTimeFormat.DayNames 

Altri suggerimenti

E 'di solito quando si dice "non mi interessa" che si avvia a combattere le API.

In ogni caso, questo dovrebbe funzionare:

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

Questo vi darà un elenco di culture:

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

USCITA: ar-SA bg-BG ca-ES zh-TW cs-CZ DA-DK de-DE el-GR it-IT fi-FI fr-FR lui-IL hu-HU IS-IS esso esso 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 L'ho fatto uk-UA be-BY sl-SI et-EE lv-LV lt-LT giusto VI-VN hy-AM az-Latn-AZ es Eu mk-MK af-ZA ka-GE FO-FO hi-IN ms-MY kk-KZ ky-KG sw-KE UZ-Latn-UZ tt-RU dolore 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 it-IT es-MX fr-BE prurito 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 gastronomia 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-CE 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-lattine-CA quz-CE seta smj-SE lo-LA km-KH cy-GB bo-CN se-SE smj-NO come in ml-IN se-FI o-IN SR-Cyrl-BA bn-IN en-IN DSB-DE tk-TM FI-SMN oc-FR es-USA se-NO mt-MT bs-Latn-BA zu-ZA xh-ZA tn-ZA TZM-Latn-DZ iu-Latn-CA HSB-DE

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

Sopra codice stamperà Lunedi come (locale Chinise) 星期一.

giorni fiochi come stringa ()         mesi Dim come stringa ()         cul fioco come nuovo System.Globalization.CultureInfo ( "de-DE")         mesi = cul.DateTimeFormat.MonthNames     giorni = cul.DateTimeFormat.DayNames

Prova questo: -

cultura stringa = "la vostra cultura"

CultureInfo myCulture = new CultureInfo (cultura);

DateTimeFormatInfo DTFI = myCulture .DateTimeFormat;

dayString = dtfi.GetDayName (la data di qui ..);

Charlie G

"de" è una NeutralCulture non sarà possibile ottenere i dayNames fuori dalla DateTimeFormat se si tenta CultureInfo.GetCultureInfo ( "de").

Vorrei suggerire che si esegue il CultureInfo.CreateSpecificCulture ( "de"), in questo caso, in quanto si creerà una cultura non neutro ... in caso di "de" Ho avuto una cultura di "de-DE" indietro dagli dei NET: D

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

    string[] names = tmp.DateTimeFormat.DayNames;
    foreach(string name in names)
    {
        Console.WriteLine(name);
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top