Comment puis-je obtenir le nom du mois à partir du numéro du mois?
Par exemple, si je l'ai 3
, je veux revenirmarch
date.tm_month()
Comment obtenir la chaîne march
?
De cela, vous pouvez voir que calendar.month_name[3]
cela reviendrait March
, et l'index du tableau 0
est la chaîne vide, il n'y a donc pas besoin de s'inquiéter de l'indexation zéro.
Retours: décembre
Quelques informations supplémentaires sur le site Web de la doc Python
[EDIT: excellent commentaire de @GiriB] Vous pouvez également utiliser
%b
qui renvoie la notation courte pour le nom du mois.Pour l'exemple ci-dessus, il reviendrait
Dec
.la source
mydate.strftime("%b")
renvoie une notation courte pour le nom du mois. (Pour l'exemple ci-dessus, il reviendraitDec
)la source
Ce n'est pas très utile si vous devez simplement connaître le nom du mois pour un nombre donné (1 - 12), car le jour en cours n'a pas d'importance.
calendar.month_name[i]
ou
calendar.month_abbr[i]
sont plus utiles ici.
Voici un exemple:
Exemple de sortie:
la source
month_name
etmonth_abbr
range(1, 13)
dans votre exemple pour obtenir les 12 mois de sortie.la source
Je proposerai ceci au cas où (comme moi) vous avez une colonne de numéros de mois dans une trame de données:
la source
Voici ce que je ferais:
Il produit:
(C'était la vraie date quand j'ai écrit ça)
la source
Certaines bonnes réponses utilisent déjà le calendrier, mais l'effet de la définition des paramètres régionaux n'a pas encore été mentionné.
Par exemple, en français:
Si vous prévoyez d'utiliser
setlocale
dans votre code, assurez-vous de lire les conseils et les mises en garde et les sections du rédacteur d'extension de la documentation. L'exemple présenté ici n'est pas représentatif de la façon dont il doit être utilisé. En particulier, à partir de ces deux sections:la source
calendar
. Je peux peut-être mettre à jour le texte.Pour une plage arbitraire de numéros de mois
produira une liste correcte. Ajustez le
start
paramètre à partir du début du mois de janvier dans la liste des mois.la source
8.1. datetime - Types de date et d'heure de base - Documentation Python 2.7.17 https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
Une liste de tous les arguments strftime. Les noms des mois et des trucs sympas comme le formatage ne sont pas remplis. Lisez la page complète pour des trucs comme des règles pour les arguments "naïfs". Voici la liste en bref:% a dim, lun,…, sam
% Un dimanche, lundi,…, samedi
% w Jour de la semaine sous forme de nombre, où 0 correspond au dimanche
% d Jour du mois 01, 02,…, 31
% b jan, fév,…, déc
% B janvier, février,…, décembre
% m Numéro de mois sous forme de 01, 02,…, 12
% y à deux chiffres, année zéro, 00, 01,…, 99
% Y 4 chiffres Année 1970, 1988, 2001, 2013
% H Hour (horloge 24 heures) avec remplissage nul 00, 01,…, 23
% I heure (horloge de 12 heures) à remplissage nul 01, 02,…, 12
% p AM ou PM.
% M Minute avec remplissage zéro 00, 01,…, 59
% S Deuxième remplissage zéro 00, 01,…, 59
% f microsecondes, à remplissage nul 000000, 000001,…, 999999
% z Décalage UTC sous la forme + HHMM ou -HHMM +0000, -0400, +1030
% Z Nom du fuseau horaire UTC, EST, CST
% j Jour de l'année à remplissage nul 001, 002,…, 366
% U Numéro de semaine de l'année zéro, les jours avant le premier dimanche sont la semaine 0
% W Numéro de semaine de l'année (lundi comme premier jour)
% c Représentation de la date et de l'heure des paramètres régionaux. Mar 16 août 21:30:00 1988
% x Représentation de la date des paramètres régionaux. 16/08/1988 (en_US)
Représentation temporelle de% X Locale. 21:30:00
Caractère %% littéral '%'.
la source
J'ai créé ma propre fonction en convertissant les nombres en leur mois correspondant.
Ensuite, je peux appeler la fonction. Par exemple:
Les sorties:
la source
calendar
module intégré. Quel avantage peut-il y avoir à créer votre propre fonction pour reproduire les mêmes résultats? En outre, un dictionnaire serait beaucoup plus rapide qu'une série d'instructions elif.