¿Cómo puedo obtener el nombre del mes del número del mes?
Por ejemplo, si tengo 3
, quiero volvermarch
date.tm_month()
¿Cómo conseguir la cuerda march
?
A partir de eso, puede ver que calendar.month_name[3]
volvería March
, y el índice de matriz de 0
es la cadena vacía, por lo que tampoco hay necesidad de preocuparse por la indexación cero.
Devoluciones: diciembre
Más información en el sitio web de Python doc
[EDITAR: gran comentario de @GiriB] También puede usar
%b
que devuelve la notación corta para el nombre del mes.Para el ejemplo anterior, volvería
Dec
.fuente
mydate.strftime("%b")
devuelve una notación corta para el nombre del mes. (Para el ejemplo anterior, volveríaDec
)fuente
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:
Salida de muestra:
fuente
month_name
ymonth_abbr
range(1, 13)
en su ejemplo para que obtenga los 12 meses en la salida.fuente
Ofreceré esto en caso de que (como yo) tenga una columna de números de mes en un marco de datos:
fuente
Esto es lo que haría:
Salidas:
(Esta fue la fecha real cuando escribí esto)
fuente
Algunas buenas respuestas ya hacen uso del calendario, pero el efecto de establecer la configuración regional aún no se ha mencionado.
Por ejemplo, en francés:
Si planea usar
setlocale
su código, asegúrese de leer los consejos y advertencias y las secciones del escritor de extensiones de la documentación. El ejemplo que se muestra aquí no es representativo de cómo debe usarse. En particular, de estas dos secciones:fuente
calendar
. Tal vez pueda actualizar el texto.Para el rango arbitaray de números de mes
rendirá la lista correcta. Ajuste el
start
parámetro desde donde comienza enero en la lista de meses enteros.fuente
8.1. datetime - Tipos básicos de fecha y hora - Documentación de Python 2.7.17 https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
Una lista de todos los argumentos de strftime. Los nombres de los meses y cosas bonitas como el formato dejaron cero relleno. Lea la página completa para cosas como reglas para argumentos "ingenuos". Aquí está la lista en resumen:% a Sun, Mon, ..., Sat
% A domingo, lunes, ..., sábado
% w Día de la semana como número, donde 0 es domingo
% d Día del mes 01, 02,…, 31
% b ene, feb, ..., dic
% B enero, febrero, ..., diciembre
% m Número de mes como 01, 02,…, 12 con relleno de cero
% y año de 2 dígitos con relleno de cero 00, 01,…, 99
% Y 4 dígitos Año 1970, 1988, 2001, 2013
% H Hora (reloj de 24 horas) con relleno de cero 00, 01,…, 23
% I Hour (reloj de 12 horas) con relleno de cero 01, 02,…, 12
% p AM o PM.
% M Minuto con relleno cero 00, 01,…, 59
% S Segundo relleno con cero 00, 01,…, 59
% f Microsegundo con relleno cero 000000, 000001,…, 999999
% z UTC offset en la forma + HHMM o -HHMM +0000, -0400, +1030
% Z Nombre de zona horaria UTC, EST, CST
% j Día del año con relleno cero 001, 002,…, 366
% U Número de semana del año con relleno cero, los días antes del primer domingo son la semana 0
% W Número de semana del año (lunes como primer día)
% c Representación de fecha y hora de la localidad. Martes 16 de agosto 21:30:00 1988
% x Representación de fecha local. 16/08/1988 (es_ES)
Representación del tiempo de% X Locale. 21:30:00
Carácter literal %% '%'.
fuente
Creé mi propia función convirtiendo números a su mes correspondiente.
Entonces puedo llamar a la función. Por ejemplo:
Salidas:
fuente
calendar
módulo incorporado . ¿Qué beneficio podría haber al crear su propia función para replicar los mismos resultados? Además, un diccionario sería mucho más rápido que una serie de declaraciones elif.