it-swarm.com.de

Liefert den Monatsnamen von der Nummer

Wie kann ich den Monatsnamen aus der Monatsnummer erhalten?

Wenn ich beispielsweise 3 habe, möchte ich march zurückgeben. 

date.tm_month()

Wie bekomme ich den String march?

158
Rajeev

Kalender-API

Daraus geht hervor, dass calendar.month_name[3]March zurückgeben würde und der Array-Index von 0 die leere Zeichenfolge ist, sodass Sie sich auch keine Sorgen über die Null-Indexierung machen müssen.

203
siame
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")

Rückkehr: Dezember

Weitere Informationen auf der Python doc-Website


[EDIT: Großartiger Kommentar von @GiriB] Sie können auch %b verwenden, der die kurze Notation für den Monatsnamen liefert.

mydate.strftime("%b")

Für das obige Beispiel würde Dec zurückgegeben.

276
JMax
import datetime

monthinteger = 4

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

print month

April

39
Mike Yantis

Dies ist nicht so hilfreich, wenn Sie nur den Monatsnamen für eine bestimmte Zahl (1 - 12) kennen müssen, da der aktuelle Tag keine Rolle spielt. 

calendar.month_name[i] 

oder 

calendar.month_abbr[i] 

sind hier nützlicher. 

Hier ist ein Beispiel:

import calendar

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

Beispielausgabe:

January
Jan

February
Feb

March
Mar

...
23
Jay Sheth
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B") # 'December'
mydate.strftime("%b") # 'dec'
15
ancho

Das würde ich tun:

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)

Es gibt aus:

>>> September

(Dies war das wirkliche Datum, als ich dies schrieb)

6
The Big Fat Pig

Ich werde dies anbieten, falls Sie (wie ich) eine Spalte mit Monatsnummern in einem Datenrahmen haben:

df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
5
Brett Rudder

Für einen beliebigen Bereich von Monatsnummern 

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

wird korrekte Liste ergeben. Passen Sie den Parameter start- an, von dem aus der Januar in der Liste der Ganzzahlen für den Monat beginnt.

0
Mehtab Pathan