Open In App

Python program to Get Month Name from Month Number

Last Updated : 22 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given a datetime object or month number, the task is to write a Python program to get the corresponding month name from it. 

Examples:

Input : test_date = datetime(2020, 4, 8)
Output : April
Explanation : 4th Month is April.

Input : test_date = datetime(2020, 1, 8)
Output : January
Explanation : 1st Month is January.

Method #1 : Using strftime() + %B

In this, we use strftime() which converts date object to a string using a format, and by providing %B, it’s enforced to just return a Month Name.

Python3




# Python3 code to demonstrate working of
# Get Month Name from Month Number
# Using strftime() + %B
from datetime import datetime
 
# initializing date
test_date = datetime(2020, 4, 8)
              
# printing original date
print("The original date is : " + str(test_date))
 
# getting month name using %B
res = test_date.strftime("%B")
 
# printing result
print("Month Name from Date : " + str(res))


Output

The original date is : 2020-04-08 00:00:00
Month Name from Date : April

Method #2: Using calendar library and month number

In this variant, rather than having datetime object as input, the month name as an input is accepted and the result is the month name returned.

Python3




# Python3 code to demonstrate working of
# Get Month Name from Month Number
# Using calendar library and month number
import calendar
 
# initializing month number
test_num = 5
              
# printing original month number
print("The original month number is : " + str(test_num))
 
# using month_name() to get month name
res = calendar.month_name[test_num]
 
# printing result
print("Month Name from Number : " + str(res))


Output

The original month number is : 5
Month Name from Number : May

Method #3: Using a dictionary

Approach

We can use a dictionary to map the month number to the month name.

Algorithm

1. Create a dictionary with the month numbers as keys and the month names as values.
2. Use the dictionary to get the month name from the month number.

Python3




from datetime import datetime
test_date = datetime(2020, 4, 8)
 
# Create a dictionary with the month numbers as keys and the month names as values
month_dict = {
    1: "January",
    2: "February",
    3: "March",
    4: "April",
    5: "May",
    6: "June",
    7: "July",
    8: "August",
    9: "September",
    10: "October",
    11: "November",
    12: "December"
}
 
# Use the dictionary to get the month name from the month number
month_name = month_dict[test_date.month]
print(month_name)


Output

April

Time complexity: O(1)
Auxiliary Space: O(1)

METHOD 4:Using re module 

APPROACH:

The Python program uses regular expressions to extract the month number from a given date string in the format “YYYY-MM-DD”. It then uses the month number to look up the corresponding month name from a predefined list of month names.

ALGORITHM:

1.Import the re module.
2.Define a regular expression pattern to match the month number in the date string.
3.Use the re.search() function to search for the month number in the date string.
4.Extract the month number from the match object.
5.Convert the month number to an integer.
6.Define a list or dictionary of month names.
7.Use the month number to get the month name from the list or dictionary.
8.Print the month name

Python3




import re
 
date_str = '2020-04-08 00:00:00'
 
# Define a regular expression pattern to match the month number
pattern = r'\d{4}-(\d{2})-\d{2}'
 
# Use re.search() to search for the month number in the date string
match_obj = re.search(pattern, date_str)
 
# Extract the month number from the match object and convert it to an integer
month_num = int(match_obj.group(1))
 
# Define a list or dictionary of month names
month_names = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
 
# Use the month number to get the month name from the list or dictionary
month_name = month_names[month_num - 1]
 
# Print the month name
print("Month Name:", month_name)


Output

Month Name: April

Time complexity:
The time complexity of this program is O(1) since the regular expression pattern and the list of month names are predefined and the lookup is constant time.

Space complexity:
The space complexity of this program is also O(1) since it uses a constant amount of memory to store the regular expression pattern, the list of month names, and the month number.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads