Wie kann ich den Monatsnamen aus der Monatsnummer ermitteln?
Wenn ich zum Beispiel habe 3
, möchte ich zurückkehrenmarch
date.tm_month()
Wie bekomme ich den String march
?
Daraus können Sie ersehen, dass calendar.month_name[3]
dies zurückkehren würde March
, und der Array-Index von 0
ist die leere Zeichenfolge, sodass Sie sich auch keine Gedanken über die Nullindizierung machen müssen.
Rückgabe: Dezember
Weitere Informationen finden Sie auf der Python-Doc-Website
[EDIT: großartiger Kommentar von @GiriB] Sie können auch
%b
die Kurznotation für den Monatsnamen verwenden.Für das obige Beispiel würde es zurückkehren
Dec
.quelle
mydate.strftime("%b")
Gibt die Kurznotation für den Monatsnamen zurück. (Für das obige Beispiel würde es zurückkehrenDec
)quelle
Dies ist nicht so hilfreich, wenn Sie nur den Monatsnamen für eine bestimmte Nummer (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:
Beispielausgabe:
quelle
month_name
undmonth_abbr
range(1, 13)
in Ihrem Beispiel zu verwenden, damit Sie alle 12 Monate in der Ausgabe erhalten.quelle
Ich biete dies an, falls Sie (wie ich) eine Spalte mit Monatszahlen in einem Datenrahmen haben:
quelle
Das würde ich tun:
Es gibt aus:
(Dies war das wahre Datum, als ich das schrieb)
quelle
Einige gute Antworten verwenden bereits den Kalender, aber den Effekt des Festlegens des Gebietsschemas wurde noch nicht erwähnt.
Zum Beispiel auf Französisch:
Wenn Sie
setlocale
in Ihrem Code verwenden möchten, lesen Sie unbedingt die Tipps und Vorbehalte sowie die Abschnitte zum Erweiterungsschreiber aus der Dokumentation. Das hier gezeigte Beispiel ist nicht repräsentativ für die Verwendung. Insbesondere aus diesen beiden Abschnitten:quelle
calendar
. Ich kann den Text vielleicht aktualisieren.Für den Arbitaray-Bereich von Monatszahlen
wird korrekte Liste ergeben. Passen Sie den
start
Parameter an, ab dem der Januar in der Monats-Ganzzahlliste beginnt.quelle
8.1. Datum / Uhrzeit - Grundlegende Datums- und Uhrzeittypen - Python 2.7.17-Dokumentation https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
Eine Liste aller strftime-Argumente. Namen von Monaten und nette Dinge wie das Formatieren ließen keine Füllung. Lesen Sie die ganze Seite für Dinge wie Regeln für "naive" Argumente. Hier ist die Liste in Kürze:% a So, Mo,…, Sa.
% Ein Sonntag, Montag,…, Samstag
% w Wochentag als Zahl, wobei 0 Sonntag ist
% d Tag des Monats 01, 02,…, 31
% b Jan, Feb,…, Dez.
% B Januar, Februar,…, Dezember
% m Monatszahl als nullgefüllte 01, 02,…, 12
% y 2-stelliges Jahr mit Nullen aufgefüllt 00, 01,…, 99
% Y 4-stelliges Jahr 1970, 1988, 2001, 2013
% H Stunde (24-Stunden-Uhr) mit Nullen aufgefüllt 00, 01,…, 23
% I Stunde (12-Stunden-Uhr) nullgefüllt 01, 02,…, 12
% p AM oder PM.
% M Minute null gepolstert 00, 01,…, 59
% S Zweite Null-gepolsterte 00, 01,…, 59
% f Mikrosekunden null aufgefüllt 000000, 000001,…, 999999
% z UTC-Offset in der Form + HHMM oder -HHMM +0000, -0400, +1030
% Z Zeitzonenname UTC, EST, CST
% j Tag des Jahres mit Nullen aufgefüllt 001, 002,…, 366
% U Wochennummer des Jahres Null gepolstert, Tage vor dem ersten Sonntag sind Woche 0
% W Wochennummer des Jahres (Montag als erster Tag)
% c Darstellung von Datum und Uhrzeit des Gebietsschemas. Di 16. August 21:30:00 1988
% x Datumsangabe des Gebietsschemas. 16.08.1988 (en_US)
% X Zeitdarstellung des Gebietsschemas. 21:30:00
%% Literal '%' Zeichen.
quelle
Ich habe meine eigene Funktion erstellt, um Zahlen in den entsprechenden Monat umzuwandeln.
Dann kann ich die Funktion aufrufen. Beispielsweise:
Ausgänge:
quelle
calendar
Modul vorhanden. Welchen Vorteil könnte es haben, eine eigene Funktion zu erstellen, um dieselben Ergebnisse zu replizieren? Außerdem wäre ein Wörterbuch viel schneller als eine Reihe von elif-Anweisungen.