Получение названия месяца из его номера в Python
Быстрый ответ
Чтобы в Python быстро преобразовать число, представляющее номер месяца (от 1 до 12), в название этого месяца, примените функцию calendar.month_name:
import calendar
print(calendar.month_name[3]) # Результат: "Март"
Для получения сокращенного названия месяца используйте функцию calendar.month_abbr:
print(calendar.month_abbr[3]) # Результат: "Мар"

Применение datetime для получения названия месяца
Модуль datetime позволяет обрабатывать дату более гибко. Для того чтобы получить полное или сокращенное название месяца, примените метод strftime(), в котором %B и %b соответственно возвращают название для данного номера месяца:
from datetime import datetime
month_number = 3
date_object = datetime(2023, month_number, 1) # Создаём объект даты
print(date_object.strftime('%B')) # Результат: "Март"
Обработка некорректного ввода
Необходимо учесть случаи, когда ввод может быть вне допустимого диапазона или не являться числом. Для этого предлагается функция, которая обрабатывает такие исключения:
def get_month_name(month_number):
try:
return calendar.month_name[month_number]
except (IndexError, TypeError):
return "Введён некорректный номер месяца. Попробуйте ещё раз, пожалуйста."
Функция получения названия месяца с проверкой ошибок
Можно создать функцию, в которой учтена проверка номера месяца. Это предоставляет возможность его переиспользования:
def safe_month_name(month_number):
if 1 <= month_number <= 12:
return calendar.month_name[month_number]
else:
return "Введён некорректный номер месяца. Год насчитывает всего 12 месяцев!"
print(safe_month_name(3)) # Результат: "Март"
print(safe_month_name(0)) # Результат: "Введён некорректный номер месяца..."
Вывод всех названий месяцев
Хотите увидеть все названия месяцев? Достаточно перебрать их с помощью цикла for. Это особенно пригодится при разработке пользовательских интерфейсов:
for i in range(1, 13):
print(calendar.month_name[i]) # Просто и красиво
Практическое применение
Возможности, описанные в этом руководстве, позволят вам четко и красиво форматировать даты в самых разнообразных задачах – от отметок времени в веб-приложениях до составления отчётов.
Визуализация
| № месяца | Название месяца |
|---|---|
| 1 | ❄️ Январь |
| 2 | ❄️ Февраль |
| 3 | 🌷 Март |
| 4 | 🌷 Апрель |
| 5 | ☀️ Май |
| 6 | ☀️ Июнь |
| 7 | 🍉 Июль |
| 8 | 🍉 Август |
| 9 | 🍁 Сентябрь |
| 10 | 🍁 Октябрь |
| 11 | 🧣 Ноябрь |
| 12 | 🧣 Декабрь |
В таблице отображено соответствие каждого номера месяца его уникальному названию.
Преобразование даты-строки в название месяца
Если у вас есть строка, содержащая дату, и требуется получить из неё название месяца, сначала преобразуйте строку в объект datetime:
date_str = "2023-03-15"
date_object = datetime.strptime(date_str, '%Y-%m-%d') # Из строки создаём объект даты
print(date_object.strftime('%B')) # Результат: "Март"
Локализация при форматировании месяца
При работе с международными приложениями крайне важно поддерживать локализацию, чтобы отображать названия месяцев на разных языках. В этом поможет библиотека locale:
import locale
locale.setlocale(locale.LC_TIME, 'es_ES') # Переключаемся на испанский язык
print(date_object.strftime('%B')) # Результат: "marzo"
Учтите, что соответствующие языковые пакеты должны быть установлены в вашей операционной системе.
Полезные материалы
- Официальное описание функций
strftimeиstrptimeв документации Python. - Обсуждение способов получения названия месяца в Python на Stack Overflow.
- Руководство по использованию модуля
calendarв Python. - Статья с примерами работы с
datetimeна сайте Real Python. - Преобразование объектов
datetimeв строку с использованием функцииstrftime(). - Описание библиотеки
python-dateutil, расширяющей возможности модуляdatetime. - Руководство с интерактивными примерами по работе с датами и временем в Python на сайте Educative.


