Cómo obtener el nombre completo del mes de DateTime


184

¿Cuál es la forma correcta de obtener el nombre completo del mes de un DateTimeobjeto?
por ejemplo January, December.

Actualmente estoy usando:

DateTime.Now.ToString("MMMMMMMMMMMMM");

Sé que no es la forma correcta de hacerlo.

Respuestas:



88

Puede hacer lo que sugirió mservidio , o incluso mejor, realizar un seguimiento de su cultura utilizando esta sobrecarga:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);

3
Eso está bien, necesito investigar esta cultura.
Alex Turpin

2
Si solo le interesa el mes, DateTime.Today en lugar de DateTime.Now es una simplificación adicional. Sin porción de tiempo inútil y un poco más rápido.
OrizG

39

Si desea el mes actual, puede usarlo DateTime.Now.ToString("MMMM")para obtener el mes completo o DateTime.Now.ToString("MMM")un mes abreviado.

Si tiene otra fecha para la que desea obtener la cadena de mes, después de cargarla en un objeto DateTime, puede usar las mismas funciones fuera de ese objeto:
dt.ToString("MMMM")para obtener el mes completo o dt.ToString("MMM")un mes abreviado.

Referencia: cadenas de formato de fecha y hora personalizadas

Alternativamente, si necesita nombres de mes específicos de la cultura, puede probar estos: Método
DateTimeFormatInfo.GetAbbreviatedMonthName DateTimeFormatInfo.GetMonthName Method


1
+1 por mencionar cómo hacerlo desde un DateTimeNO DateTime.Now. Pensé que era string mon = myDate.Month.ToString("MMM")cuando me decepcionaba escupir "MMM" en mi variable de cadena. Me alegro de que te hayas esforzado por mostrar cómo usar .ToString("MMM")la fecha, para obtener el mes, cuando no es así DateTime.Now. Y cómo explicaste la diferencia entre MMMy MMMM. La mejor respuesta en esta página. Prestigio.
vapcguy

1
Si solo le interesa el mes, DateTime.Today en lugar de DateTime.Now es una simplificación adicional. Sin porción de tiempo inútil y un poco más rápido.
OrizG

21

Si recibe "MMMM" como respuesta, probablemente obtenga el mes y luego lo convierta a una cadena de formato definido.

DateTime.Now.Month.ToString("MMMM") 

generará "MMMM"

DateTime.Now.ToString("MMMM") 

mostrará el nombre del mes


16

Puede usar Culture para obtener el nombre del mes para su país como:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);

14

Sus

DateTime.Now.ToString("MMMM");

Con 4 Ms.


1
Si solo le interesa el mes, DateTime.Today en lugar de DateTime.Now es una simplificación adicional. Sin porción de tiempo inútil y un poco más rápido.
OrizG

11

Debería ser solo DateTime.ToString( "MMMM" )

No necesitas todos los Ms extra .


9
DateTime birthDate = new DateTime(1981, 8, 9);
Console.WriteLine ("I was born on the {0}. of {1}, {2}.", birthDate.Day, birthDate.ToString("MMMM"), birthDate.Year);

/* The above code will say:
"I was born on the 9. of august, 1981."

"dd" converts to the day (01 thru 31).
"ddd" converts to 3-letter name of day (e.g. mon).
"dddd" converts to full name of day (e.g. monday).
"MMM" converts to 3-letter name of month (e.g. aug).
"MMMM" converts to full name of month (e.g. august).
"yyyy" converts to year.
*/
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.