Obtener el nombre del mes del número del mes


254

Posible duplicado:
¿Cómo obtener el MonthName en c #?

Usé la siguiente sintaxis de C # para obtener el nombre del mes del mes no, pero obtengo Augustque solo quiero Aug...

System.Globalization.DateTimeFormatInfo mfi = new 
System.Globalization.DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString();

Cualquier sugerencia...


3
Aparte de que .GetMonthName (int) no devuelve la cadena que está buscando, sí devuelve una cadena, por lo que .ToString () es innecesario
— DaveD

1
¿No sería más fácil agregar una .Substring (0,3)?
— Federico Navarrete

Respuestas:


349

Para nombres de meses cortos use:

string monthName = new DateTime(2010, 8, 1)
    .ToString("MMM", CultureInfo.InvariantCulture);

Para nombres de meses largos / completos para la cultura española ("es")

string fullMonthName = new DateTime(2015, i, 1).ToString("MMMM", CultureInfo.CreateSpecificCulture("es"));

¿Cómo usaría el código anterior si quiero "agosto"? nombre completo del mes?
— Albert Laure

25
@ Usuario6675636b20796f7521string monthName = new DateTime(2010, 8, 1) .ToString("MMMM", CultureInfo.InvariantCulture);
— Robert Fricke

Esto: "string s = new DateTime (1958, month, 1) .ToString (" MMMM ", CultureInfo.InvariantCulture ());" me dice, "El miembro no invocable 'System.Globalization.CultureInfo.InvariantCulture' no se puede usar como un método".
— B. Clay Shannon

B. Clay Shannon add () around (nuevo DateTime (1958, mes, 1))
— nuclear dulce

2
Esta respuesta no es la mejor en mi humilde opinión para trabajar desde un número de mes en lugar de una fecha y hora como en la pregunta OP. La respuesta de Lasse V. Karlsen es más sencilla para el nombre de un mes corto. Y para obtener el nombre del mes en su cultura local, use CultureInfo.CurrentCulture como en las respuestas de CharithJ.
— AFract

290

Para nombres abreviados de mes: "Ago"

Método DateTimeFormatInfo.GetAbbreviatedMonthName (Int32)

Devuelve el nombre abreviado específico de la cultura del mes especificado en función de la cultura asociada con el objeto DateTimeFormatInfo actual.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(8)

Para nombres de mes completo: "agosto"

Método DateTimeFormatInfo.GetMonthName (Int32)

Devuelve el nombre completo específico de la cultura del mes especificado según la cultura asociada con el objeto DateTimeFormatInfo actual.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(8);

2
GetMonthName devuelve el nombre completo del mes. Si lo necesita como JAN, FEB, etc., puede usar var mes = 10; string monthName = new DateTime (2014, month, 1) .ToString ("MMM", CultureInfo.InvariantCulture) .ToUpper ();
— Dmitry Pavlov

3
@DmitryPavlov GetAbbreviatedMonthName()es una mejor manera de hacerlo.
— NickG

2
DateTimeFormatInfo debe ser DateTimeFormat (al menos en .net 4.6)
— TravisWhidden

La segunda opción funcionó para mí, aunque lo usé en GetCultureInfo("en-GB")lugar de CurrentCultureporque quería estar seguro de que mi nombre de mes siempre estará en inglés
— Maurice Klimek

Esta debería ser la mejor respuesta. Me salvó el día Gracias.
— Mahmoud Eidarous



11

Puede obtener esto de la siguiente manera,

DateTimeFormatInfo mfi = new DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString(); //August

Ahora, obtenga los primeros tres personajes

string shortMonthName = strMonthName.Substring(0, 3); //Aug

9
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

Este método vuelve April

Si necesita un lenguaje especial, puede agregar:

<system.web>
    <globalization culture="es-ES" uiCulture="es-ES"></globalization>
     <compilation debug="true"
</system.web>

O tu idioma preferido.

Por ejemplo, con es-EScultura:

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

Devoluciones: Abril

Devoluciones: Abril(en español, porque lo configuramos culture as es-ESen nuestro webconfigarchivo, de lo contrario, obtendrá April)

Eso debería funcionar.


5

Esto debería devolver el texto del mes (enero - diciembre) del índice del mes (1-12)

int monthNumber = 1; //1-12  
string monthName = new DateTimeFormatInfo().GetMonthName(monthNumber);

1
Proporcione alguna información adicional. No solo publique el código
— ochs.tobi

1
var month = 5;
var cultureSwe = "sv-SE";
var monthSwe = CultureInfo.CreateSpecificCulture(cultureSwe).DateTimeFormat.GetAbbreviatedMonthName(month);
Console.WriteLine(monthSwe);

var cultureEn = "en-US";
var monthEn = CultureInfo.CreateSpecificCulture(cultureEn).DateTimeFormat.GetAbbreviatedMonthName(month);
Console.WriteLine(monthEn);

Salida

maj
may
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.