Obtener el nombre del mes del número

¿Cómo puedo obtener el nombre del mes del número del mes?

Por ejemplo, si tengo 3 , quiero volver march

 date.tm_month() 

¿Cómo conseguir la march cuerdas?

Calendario API

Desde ahí puede ver que calendar.month_name[3] devolvería March , y el índice de matriz de 0 es la cadena vacía, por lo que tampoco hay que preocuparse por la indexación cero.

 import datetime mydate = datetime.datetime.now() mydate.strftime("%B") 

Devoluciones: diciembre

Un poco más de información en el sitio web de Python doc


[EDIT: gran comentario de @GiriB] También puede usar %b que devuelve la notación corta para el nombre del mes.

 mydate.strftime("%b") 

Para el ejemplo anterior, regresaría Dec .

 import datetime monthinteger = 4 month = datetime.date(1900, monthinteger, 1).strftime('%B') print month 

abril

Esto no es tan útil si solo necesita saber el nombre del mes para un número dado (1 – 12), ya que el día actual no importa.

calendar.month_name[i]

o

calendar.month_abbr[i]

Son más útiles aquí.

Aquí hay un ejemplo:

 import calendar for month_idx in range(1, 13): print (calendar.month_name[month_idx]) print (calendar.month_abbr[month_idx]) print ("") 

Salida de muestra:

 January Jan February Feb March Mar ... 
 import datetime mydate = datetime.datetime.now() mydate.strftime("%B") # 'December' mydate.strftime("%b") # 'dec' 

Esto es lo que yo haría:

 from datetime import * months = ["Unknown", "January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] now = (datetime.now()) year = (now.year) month = (months[now.month]) print(month) 

Sale:

 >>> September 

(Esta fue la fecha real cuando escribí esto)

Ofreceré esto en caso de que (como yo) tenga una columna de números de meses en un dataframe:

 df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x]) 

Para rango de mes arbitrario

 month_integer=range(0,100) map(lambda x: calendar.month_name[x%12+start],month_integer) 

dará la lista correcta. Ajuste el parámetro de start desde donde comienza enero en la lista de meses enteros.

Creé mi propia función convirtiendo números a su mes correspondiente.

 def month_name (number): if number == 1: return "January" elif number == 2: return "February" elif number == 3: return "March" elif number == 4: return "April" elif number == 5: return "May" elif number == 6: return "June" elif number == 7: return "July" elif number == 8: return "August" elif number == 9: return "September" elif number == 10: return "October" elif number == 11: return "November" elif number == 12: return "December" 

Entonces puedo llamar a la función. Por ejemplo:

 print (month_name (12)) 

Salidas:

 >>> December