Jak mogę uzyskać nazwę miesiąca z numeru miesiąca?
Na przykład, jeśli mam 3
, chcę wrócićmarch
date.tm_month()
Jak zdobyć ciąg march
?
Z tego widać, że calendar.month_name[3]
to zwróci March
, a indeks tablicy 0
jest pustym ciągiem, więc nie trzeba się też martwić indeksowaniem zerowym.
Zwraca: grudzień
Więcej informacji na stronie doc Python
[EDYCJA: świetny komentarz @GiriB] Możesz również użyć,
%b
która zwraca krótką notację dla nazwy miesiąca.W powyższym przykładzie powróci
Dec
.źródło
mydate.strftime("%b")
zwraca krótką notację dla nazwy miesiąca. (W powyższym przykładzie powróciDec
)źródło
Nie jest to tak pomocne, jeśli potrzebujesz znać nazwę miesiąca dla danej liczby (1–12), ponieważ bieżący dzień nie ma znaczenia.
calendar.month_name[i]
lub
calendar.month_abbr[i]
są bardziej przydatne tutaj.
Oto przykład:
Przykładowe dane wyjściowe:
źródło
month_name
imonth_abbr
range(1, 13)
w twoim przykładzie, aby uzyskać wszystkie 12 miesięcy w wyniku.źródło
Oferuję to w przypadku, gdy (tak jak ja) masz kolumnę liczb miesięcy w ramce danych:
źródło
Oto co bym zrobił:
Wyprowadza:
(To była prawdziwa data, kiedy to napisałem)
źródło
Niektóre dobre odpowiedzi już korzystają z kalendarza, ale efekt ustawiania lokalizacji nie został jeszcze wspomniany.
Na przykład w języku francuskim:
Jeśli planujesz używać
setlocale
w swoim kodzie, zapoznaj się z poradami, zastrzeżeniami i sekcjami programu piszącego rozszerzenia z dokumentacji. Przedstawiony tutaj przykład nie jest reprezentatywny dla tego, jak należy go używać. W szczególności z tych dwóch sekcji:źródło
calendar
. Mogę zaktualizować tekst.Dla arbitaray zakres numerów miesięcy
da poprawną listę. Dostosuj
start
parametr, od którego zaczyna się styczeń na liście liczb całkowitych miesiąca.źródło
8.1 datetime - Podstawowe typy daty i godziny - Dokumentacja Python 2.7.17 https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
Lista wszystkich argumentów strftime. Nazwy miesięcy i fajne rzeczy, takie jak formatowanie, pozostawiły zero zero. Przeczytaj całą stronę, na przykład takie zasady, jak „naiwne” argumenty. Oto lista w skrócie:% niedz., Pon.,…, Sob
% A niedziela, poniedziałek,…, sobota
% w Dzień tygodnia jako liczba, gdzie 0 to niedziela
% d Dzień miesiąca 01, 02,…, 31
% b sty, luty,…, gru
% B styczeń, luty,…, grudzień
% m Numer miesiąca jako uzupełniony zerami 01, 02,…, 12
% y 2-cyfrowy rok wypełniony zerami 00, 01,…, 99
% Y 4 cyfry Rok 1970, 1988, 2001, 2013
% H Godzina (zegar 24-godzinny) wyściełany zerami 00, 01,…, 23
% I Godzina (zegar 12-godzinny) wyściełany zerami 01, 02,…, 12
% p AM lub PM.
% M Minuta wypełniona zerami 00, 01,…, 59
% S Drugi, uzupełniony zerami 00, 01,…, 59
% f Mikrosekundowe wypełnienie zerowe 000000, 000001,…, 999999
Przesunięcie% z UTC w postaci + HHMM lub -HHMM +0000, -0400, +1030
% Z Nazwa strefy czasowej UTC, EST, CST
% j Dzień roku wypełniony zerami 001, 002,…, 366
% U Numer tygodnia wypełnionego zera roku, Dni przed pierwszą niedzielą to tydzień 0
% W Numer tygodnia w roku (poniedziałek jako pierwszy dzień)
% c Przedstawienie daty i godziny ustawień regionalnych. Wt 16 sierpnia 21:30:00 1988
Reprezentacja daty% x ustawienia regionalne. 08/16/1988 (en_US)
Reprezentacja czasowa% X ustawień regionalnych. 21:30:00
%% dosłowny znak „%”.
źródło
Stworzyłem własną funkcję konwertującą liczby na odpowiadający im miesiąc.
Następnie mogę wywołać funkcję. Na przykład:
Wyjścia:
źródło
calendar
module. Jaka może być korzyść z utworzenia własnej funkcji w celu odtworzenia tych samych wyników? Ponadto słownik byłby znacznie szybszy niż seria instrukcji elif.