Получение названия месяца из его номера в Python

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы в Python быстро преобразовать число, представляющее номер месяца (от 1 до 12), в название этого месяца, примените функцию calendar.month_name:

Python
Скопировать код
import calendar
print(calendar.month_name[3])  # Результат: "Март"

Для получения сокращенного названия месяца используйте функцию calendar.month_abbr:

Python
Скопировать код
print(calendar.month_abbr[3])  # Результат: "Мар"
Кинга Идем в IT: пошаговый план для смены профессии

Применение datetime для получения названия месяца

Модуль datetime позволяет обрабатывать дату более гибко. Для того чтобы получить полное или сокращенное название месяца, примените метод strftime(), в котором %B и %b соответственно возвращают название для данного номера месяца:

Python
Скопировать код
from datetime import datetime
month_number = 3
date_object = datetime(2023, month_number, 1)  # Создаём объект даты
print(date_object.strftime('%B'))  # Результат: "Март"

Обработка некорректного ввода

Необходимо учесть случаи, когда ввод может быть вне допустимого диапазона или не являться числом. Для этого предлагается функция, которая обрабатывает такие исключения:

Python
Скопировать код
def get_month_name(month_number):
    try:
        return calendar.month_name[month_number]
    except (IndexError, TypeError):
        return "Введён некорректный номер месяца. Попробуйте ещё раз, пожалуйста."

Функция получения названия месяца с проверкой ошибок

Можно создать функцию, в которой учтена проверка номера месяца. Это предоставляет возможность его переиспользования:

Python
Скопировать код
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. Это особенно пригодится при разработке пользовательских интерфейсов:

Python
Скопировать код
for i in range(1, 13):
    print(calendar.month_name[i])  # Просто и красиво

Практическое применение

Возможности, описанные в этом руководстве, позволят вам четко и красиво форматировать даты в самых разнообразных задачах – от отметок времени в веб-приложениях до составления отчётов.

Визуализация

№ месяцаНазвание месяца
1❄️ Январь
2❄️ Февраль
3🌷 Март
4🌷 Апрель
5☀️ Май
6☀️ Июнь
7🍉 Июль
8🍉 Август
9🍁 Сентябрь
10🍁 Октябрь
11🧣 Ноябрь
12🧣 Декабрь

В таблице отображено соответствие каждого номера месяца его уникальному названию.

Преобразование даты-строки в название месяца

Если у вас есть строка, содержащая дату, и требуется получить из неё название месяца, сначала преобразуйте строку в объект datetime:

Python
Скопировать код
date_str = "2023-03-15"
date_object = datetime.strptime(date_str, '%Y-%m-%d')  # Из строки создаём объект даты
print(date_object.strftime('%B'))  # Результат: "Март"

Локализация при форматировании месяца

При работе с международными приложениями крайне важно поддерживать локализацию, чтобы отображать названия месяцев на разных языках. В этом поможет библиотека locale:

Python
Скопировать код
import locale
locale.setlocale(locale.LC_TIME, 'es_ES')  # Переключаемся на испанский язык
print(date_object.strftime('%B'))  # Результат: "marzo"

Учтите, что соответствующие языковые пакеты должны быть установлены в вашей операционной системе.

Полезные материалы

  1. Официальное описание функций strftime и strptime в документации Python.
  2. Обсуждение способов получения названия месяца в Python на Stack Overflow.
  3. Руководство по использованию модуля calendar в Python.
  4. Статья с примерами работы с datetime на сайте Real Python.
  5. Преобразование объектов datetime в строку с использованием функции strftime().
  6. Описание библиотеки python-dateutil, расширяющей возможности модуля datetime.
  7. Руководство с интерактивными примерами по работе с датами и временем в Python на сайте Educative.