wie Datum und Monat Anfangsbuchstaben ToLongDateString () Ergebnis in ihm-mx Kultur in Großbuchstaben?

StackOverflow https://stackoverflow.com/questions/228559

Frage

zur Zeit erhalte ich das unten ergeben sich aus der folgenden C # Codezeile, wenn in es-MX Kultur

   Thread.CurrentThread.CurrentCulture =
     Thread.CurrentThread.CurrentUICulture = new
                CultureInfo("es-mx");

  <span><%=DateTime.Now.ToLongDateString()%></span>

miércoles, 22 de Octubre de 2008

Ich möchte die folgende

erhalten

Miércoles, 22 de Octubre de 2008

brauche ich meine eigene Kultur zu bauen?

War es hilfreich?

Lösung

Sie brauchen keine eigene Kultur aufzubauen. Sie müssen nur die Eigenschaft DateTimeFormat.DayNames und DateTimeFormat.MonthNames in der aktuellen Kultur ändern.

d.

        string[] newNames = { "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo" };
        Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames = newNames;

Allerdings ist es seltsam, dass en-US-Show Monate und Tage mit dem ersten Großbuchstaben und für mx-ES nicht.

Hoffe, es hilft!.

Andere Tipps

Das Muster von Longdate für Spanisch (Mexiko) ist

  

dddd, dd' de 'MMMM' de 'yyyy

Thread.CurrentThread.CurrentCulture.DateTimeFormat .LongDatePattern . Ich denke, man muss nur manuell die Anfangsbuchstaben des Tages und Monat in Großbuchstaben umwandeln oder Sie können ein href verwenden <= "http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase aspx“rel = "nofollow noreferrer"> Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase und ersetzen Sie dann "de" mit "de".

erste beiden Lösungen funktionieren gut, aber was ist, wenn wir möchten, dies zu jeder Kultur erweitern, so dass ich mit diesem Ansatz ich die Zeit aktuelle Kultur Datum Arrays in Titlecase ändern aufkommen

private void SetDateTimeFormatNames()
        {

            Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames = ConvertoToTitleCase(Thread.CurrentThread.CurrentCulture.DateTimeFormat.DayNames);
            Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames = ConvertoToTitleCase(Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames);

        }

private string[] ConvertoToTitleCase(string[] arrayToConvert)
            {
                for (int i = 0; i < arrayToConvert.Length; i++)
                {
                    arrayToConvert[i] = Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(arrayToConvert[i]);
                }

                return arrayToConvert;
            }

Wie kann dies mit aus der Schleife verbessert werden?

ein wenig spät, aber diese Arbeit für mich!

 public static string GetFecha()
    {
        System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("es-EC");
        System.Threading.Thread.CurrentThread.CurrentCulture = culture;

        // maldita sea!
        string strDate = culture.TextInfo.ToTitleCase(DateTime.Now.ToLongDateString());

        return strDate.Replace("De", "de");


    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top