proyectos ejemplos python datetime date

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])


API de calendario

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''