Pregunta

Supongamos que sólo tengo un código de país (en, de, fr) y tengo que mostrar los días de la semana en este idioma. Yo sé de RegionInfo y CultureInfo - pero no puedo encontrar una solución. Si creo un país de la información (por ejemplo) "en" No tengo ninguna información DateTime en ella. También estaría bien que acaba de tomar la primera región coincidente. Para un ejemplo en-US para en or de-DE para de.

No sé si hay diferencias en dayNames pero sé que hay algunos de los meses. de-DE Febrero - de-AT Feber - de todos modos no me importa. Evento si puede ser "un poco diferente" (para ver Februar en lugar de Feber) -. Todavía es alemán

Y eso es lo que quieren achive - Obtener en una escritura Lunes - obtener de escritura y Montag ...

¿Hay una manera de crear una región sólo de un código de idioma?

¿Fue útil?

Solución

Esta pieza puede ser de ayuda: para pasar de "es" a la CultureInfo, es una manera más rápida

CultureInfo ci = CultureInfo.CreateSpecificCulture("en")

Para la segunda parte, yo creo que está pidiendo nombres de días, por lo que iba a escribir

string[] names = ci.DateTimeFormat.DayNames 

Otros consejos

Por lo general, cuando se dice "no me importa" que se inicia la lucha contra las API.

De todos modos, esto debería funcionar:

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

Esto le dará una lista de las culturas:

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

SALIDA: 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 eso eso 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 yo hice UK-UA ser-BY sl-SI et-EE LV-LV lt-LT justa vi-VN HY-AM az-Latn-AZ es EU mk-MK af-ZA ka-GE fo-FO hi-IN MS-MI kk-KZ KY-KG sw-KE uz-Latn-UZ tt-RU dolor gu-IN ta-IN te-IN kn-IN mr-IN sa-EN mn-MN gl-ES Kok-IN SYR-SY dv-MV ar-IQ zh-CN de-CH en-GB ES-MX FR-BE picar 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 fiambres 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 divisar 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-MI 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-CE seda smj-SE lo-LA km-KH cy-GB bo-CN SE-SE smj-NO como en ml-IN SE-FI o-IN sr-Cyrl-BA bn-IN en-EN bss-DE tk-TM SMN-FI oc-FR ES-EEUU SE-NO MT-MT bs-Latn-BA zu-ZA xh-ZA tn-ZA TZM-Latn-DZ IU-CA-Latn HSB-DE

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

Por encima de código imprimirá el lunes como 星期一 (Chinise local).

día déviles como String ()         meses Dim como secuencia ()         Dim cul Como Nueva System.Globalization.CultureInfo ( "de-DE")         meses = cul.DateTimeFormat.MonthNames     días = cul.DateTimeFormat.DayNames

Prueba esto: -

cultura cadena = "su cultura"

CultureInfo myCulture = new CultureInfo (cultivo);

DateTimeFormatInfo DTFI = myCulture .DateTimeFormat;

dayString = dtfi.GetDayName (su fecha aquí ..);

Charlie G

"de" es un NeutralCulture no será posible obtener los dayNames fuera de la DateTimeFormat si intenta CultureInfo.GetCultureInfo ( "de").

Yo sugeriría que se ejecuta el CultureInfo.CreateSpecificCulture ( "de"), en este caso, ya que va a crear una cultura no neutral ... en el caso de "de" Tengo una cultura de "de-DE" de vuelta de los dioses .NET: D

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

    string[] names = tmp.DateTimeFormat.DayNames;
    foreach(string name in names)
    {
        Console.WriteLine(name);
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top