wie Datum und Monat Anfangsbuchstaben ToLongDateString () Ergebnis in ihm-mx Kultur in Großbuchstaben?
-
04-07-2019 - |
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
erhaltenMiércoles, 22 de Octubre de 2008
brauche ich meine eigene Kultur zu bauen?
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");
}