primera net mayuscula letra c# .net datetime internationalization culture

c# - net - cómo mayúscula y la primera letra del mes de ToLongDateString() dan como resultado cultura es-mx?



primera letra mayuscula javascript (4)

El patrón de LongDate para español (México) es

dddd, dd'' de ''MMMM'' de ''yyyy

de acuerdo con Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongDatePattern . Supongo que solo tiene que convertir manualmente las letras iniciales del día y el mes a mayúsculas o puede usar Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase y luego reemplazar "De" con "de".

actualmente obtengo el siguiente resultado de la siguiente línea de código C # cuando en es-MX Culture

Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-mx"); <span><%=DateTime.Now.ToLongDateString()%></span>

miércoles, 22 de octubre de 2008

me gustaría obtener lo siguiente

Miércoles, 22 de Octubre de 2008

¿Necesito construir mi propia cultura?


Las dos primeras soluciones funcionan bien, pero ¿y si quisiéramos extender esto a cualquier cultura, así que se me ocurrió este enfoque? Cambié las matrices de fecha y hora de la cultura actual en TitleCase.

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

¿Cómo se puede mejorar esto con el Loop?


No necesitas construir tu propia cultura. Solo necesita cambiar la propiedad DateTimeFormat.DayNames y DateTimeFormat.MonthNames en la cultura actual.

es decir

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

Sin embargo, es extraño que en-US muestre meses y días con la primera letra mayúscula y para mx-ES no.

¡Espero eso ayude!.


un poco tarde, pero este trabajo para mí!

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