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)) |
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)) |
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) |
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) |
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.