Відповіді:
import datetime
mydate = datetime.datetime.now()
mydate.strftime("%B")
Повернення: грудень
Більше інформації на веб-сайті doc Python
[EDIT: чудовий коментар від @GiriB] Ви також можете використовувати, %b
що повертає коротке позначення назви місяця.
mydate.strftime("%b")
Для наведеного вище прикладу вона повернеться Dec
.
mydate.strftime("%b")
повертає коротке позначення назви місяця. (Для прикладу вище, це повернеться Dec
)
import datetime
monthinteger = 4
month = datetime.date(1900, monthinteger, 1).strftime('%B')
print month
Квітень
Це не так корисно, якщо вам потрібно просто знати назву місяця для заданого числа (1 - 12), оскільки поточний день не має значення.
calendar.month_name[i]
або
calendar.month_abbr[i]
тут корисніші.
Ось приклад:
import calendar
for month_idx in range(1, 13):
print (calendar.month_name[month_idx])
print (calendar.month_abbr[month_idx])
print ("")
Вибірка зразка:
January
Jan
February
Feb
March
Mar
...
month_name
іmonth_abbr
range(1, 13)
у вашому прикладі, щоб ви отримали всі 12 місяців у результаті.
Я запропоную це у випадку, якщо (як я) у вас є стовпець номерів місяців у кадрі даних:
df['monthName'] = df['monthNumer'].apply(lambda x: calendar.month_name[x])
Це те, що я б робив:
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)
Він виводить:
>>> September
(Це була справжня дата, коли я це писав)
У деяких хороших відповідях вже використовується календар, але ефект налаштування локалі ще не згадується.
Наприклад, французькою мовою:
import locale
import calendar
locale.setlocale(locale.LC_ALL, 'fr_FR')
assert calendar.month_name[1] == 'janvier'
assert calendar.month_abbr[1] == 'jan'
Якщо ви плануєте використовувати setlocale
у своєму коді, ознайомтеся з порадами та застереженнями та розділами написання розширень із документації. Приклад, показаний тут, не є репрезентативним способом його використання. Зокрема, з цих двох розділів:
Зазвичай поганою ідеєю називати setlocale () в деякій бібліотечній процедурі, оскільки як побічний ефект це впливає на всю програму […]
Модулі розширення ніколи не повинні викликати setlocale () […]
calendar
. Можливо, я можу оновити текст.
Для діапазону арбітарей числа місяців
month_integer=range(0,100)
map(lambda x: calendar.month_name[x%12+start],month_integer)
дасть правильний список. Налаштувати параметр, start
звідки починається січень у списку цілих місяців.
8.1. datetime - Основні типи дати та часу - Python 2.7.17 документація https://docs.python.org/2/library/datetime.html#strearch-strptime-behavior
Список усіх аргументів строфінгу. Назви місяців та таких приємних речей, як форматування, залиште нульову заливку. Прочитайте повну сторінку для таких матеріалів, як правила для "наївних" аргументів. Ось короткий список:% a Сонце, Пн,…, Сб
% Неділя, понеділок,…, субота
% w Тиждень як число, де 0 - неділя
% d День місяця 01, 02,…, 31
% b січень, лютий,…, груд
% B січень, лютий,…, грудень
% m Кількість місяця у вигляді нульового розміру 01, 02,…, 12
% y 2-значний рік 00, 01,…, 99
% Y Чотиризначний Рік 1970, 1988, 2001, 2013
% H Hour (цілодобовий годинник) 00, 01,…, 23
% I Hour (12-годинний годинник) 01, 02,…, 12
% p AM або PM.
% M Хвилина з нульовим набором 00, 01,…, 59
% S Другий обкладений нулем 00, 01,…, 59
% f Мікросекунда з нульовою підкладкою 000000, 000001,…, 999999
% z зміщення UTC у вигляді + HHMM або -HHMM +0000, -0400, +1030
% Z Назва часового поясу UTC, EST, CST
% j День року 001, 002,…, 366
% U Кількість тижня в році, нульова, 0 днів до першої неділі - тиждень 0
% W число тижня в році (понеділок як перший день)
% c Представлення дати та часу в локальному масштабі. Вт 16 серпня 21:30:00 1988
% x Представлення дати в локальному масштабі. 16.08.1988 (en_US)
% X Показ часу у часі. 21:30:00
%% буквальний символ "%".
Я створив власну функцію перетворення чисел у відповідний місяць.
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"
Тоді я можу викликати функцію. Наприклад:
print (month_name (12))
Виходи:
>>> December
calendar
модулі. Яка користь може створити власну функцію для повторення тих же результатів? Крім того, словник був би набагато швидшим, ніж серія тверджень elif.