322 votes

Obtenir le nom du mois à partir du numéro

Comment puis-je obtenir le nom du mois à partir du numéro du mois ?

Par exemple, si j'ai 3 Je veux revenir. march

date.tm_month()

Comment obtenir la chaîne march ?

521voto

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

Les retours : Décembre

Quelques informations supplémentaires sur le Site web de la documentation Python


[EDIT : excellent commentaire de @GiriB] Vous pouvez également utiliser %b qui renvoie la notation courte du nom du mois.

mydate.strftime("%b")

Pour l'exemple ci-dessus, il retournerait Dec .

19 votes

Ce n'est pas très utile si vous avez juste besoin de connaître le nom du mois pour un nombre donné (1 - 12), car le jour courant n'a pas d'importance. calendar.month_name[i] ou calendar.month_abbr[i] sont plus utiles ici.

16 votes

mydate.strftime("%b") renvoie la notation courte du nom du mois. (Dans l'exemple ci-dessus, il renvoie Dec )

6 votes

Vous pouvez utiliser mydate = datetime.datetime(2019, integer , 1, 0, 0) mais c'est plutôt moche.

353voto

siame Points 2475

API de calendrier

A partir de là, vous pouvez voir que calendar.month_name[3] rendrait March et l'indice du tableau de 0 est la chaîne vide, il n'y a donc pas besoin de s'inquiéter de l'indexation zéro non plus.

47 votes

Vous pouvez également utiliser calendar.month_abbr[i] pour un nom de mois court - par exemple Mar.

9 votes

Remarque : vous devrez peut-être import calendar en haut de votre fichier avant de pouvoir l'utiliser.

2 votes

Si quelqu'un cherche à faire cela dans pandas, la solution est ici : stackoverflow.com/questions/36010999/ . C'est juste que c'est le premier résultat qui apparaît lorsque l'on cherche le nom du mois dans une question de format de chaîne. J'ai pensé à le mettre ici au cas où.

77voto

Mike Yantis Points 691
import datetime

monthinteger = 4

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

print month

Avril

55voto

Jay Sheth Points 136

Ce n'est pas très utile si vous avez juste besoin de connaître le nom du mois pour un nombre donné (1 - 12), car le jour actuel n'a pas d'importance.

calendar.month_name[i]

o

calendar.month_abbr[i]

sont plus utiles ici.

Voici un exemple :

import calendar

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

Exemple de sortie :

January
Jan

February
Feb

March
Mar

...

23voto

ancho Points 109
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B") # 'December'
mydate.strftime("%b") # 'dec'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X