python - ejemplos - Obtener el nombre del mes del número
django (8)
¿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 hacer la march
cuerda?
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))
Productos:
>>> December
Esto es lo que 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)
Salidas:
>>> September
(Esta fue la fecha real cuando escribí esto)
Esto no es tan útil si solo necesita saber el nombre del mes para un número determinado (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 ("")
Muestra de salida:
January
Jan
February
Feb
March
Mar
...
Lo ofreceré en caso de que (como yo) tengas una columna de números de mes en un marco de datos:
df[''monthName''] = df[''monthNumer''].apply(lambda x: calendar.month_name[x])
De eso se 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 no hay necesidad de preocuparse por la indexación cero tampoco.
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime(''%B'')
print month
abril
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
Devoluciones: diciembre
Más información en el sitio web de Python doc
[EDITAR: gran comentario de @GiriB] También puedes usar %b
que devuelve la notación corta para el nombre del mes.
mydate.strftime("%b")
Para el ejemplo anterior, devolvería Dec
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B") # ''December''
mydate.strftime("%b") # ''dec''