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 retourner march

date.tm_month()

Comment obtenir la chaîne march?

142
demandé sur JMax 2011-07-02 18:17:22

9 réponses

API de calendrier

À partir de cela, vous pouvez voir que calendar.month_name[3] retournerait March, et l'index du tableau de 0 est la chaîne vide, donc il n'y a pas besoin de s'inquiéter de l'indexation nulle non plus.

185
répondu siame 2011-07-02 14:21:47
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")

Retourne: Décembre

Quelques informations supplémentaires sur le site web Python doc


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

mydate.strftime("%b")

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

253
répondu JMax 2017-11-04 14:11:51
import datetime

monthinteger = 4

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

print month

Avril

36
répondu Mike Yantis 2016-05-03 15:42:35

Ce n'est pas si utile si vous avez juste besoin de 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:

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

...
21
répondu Jay Sheth 2016-06-22 17:16:28
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B") # 'December'
mydate.strftime("%b") # 'dec'
15
répondu ancho 2015-01-07 11:26:14

C'Est Ce Que Je Ferais:

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)

Il Produit:

>>> September

(C'Était La Vraie Date Quand J'Ai Écrit Ceci)

6
répondu The Big Fat Pig 2017-07-17 17:03:44

Je vais offrir ceci au cas où (comme moi) vous avez une colonne de numéros de mois dans un dataframe:

df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
5
répondu Brett Rudder 2016-03-21 19:53:39

J'ai créé ma propre fonction convertissant les nombres en leur mois correspondant.

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"

Ensuite, je peux appeler la fonction. Par exemple:

print (month_name (12))

Sorties:

>>> December
0
répondu jdvcal 2017-05-09 13:34:06

Pour la plage de numéros de mois d'arbitaray

month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)

Donnera la liste correcte. Ajustez start - paramètre à partir duquel janvier commence dans la liste mois entier.

0
répondu Mehtab Pathan 2018-08-15 10:24:49