Java Program to Print the Months in Different Formats


This article uses various approaches for formatting the months using different libraries and using corresponding import statements in Java language. There are lots of ways to display months in the Java program outputs. Sometimes the months are written as numbers, sometimes the months are written in long form or they are written in short forms. The Month names are also written in other Languages such as Spanish, French, etc.

Algorithm

  • Step 1 − Ask the user to enter the date.

  • Step 2 − Identify the month part of the date.

  • Step 3 − Specify the format for the month.

  • Step 4 − Print the month in the specified format.

Multiple Approaches

We have provided the solution using different approaches.

  • By Using java.time.Month

  • By Using java.util.Date and Arrays

  • By Using String and its methods

  • By Using java.text.SimpleDateFormat

  • By Using java.util.Calendar

Let’s see the program along with its output one by one.

Approach-1: By Using java.time.Month

In this approach, the months are printed by specifying the month number that starts from the number 1. For example -> Month.of(1) will give JANUARY.

Example

import java.time.Month;
public class ShowMonth {
   public static void main(String[] args)
   {
      Month mon;
      for (int mn=1; mn<=12; mn++){
         
         // The first month starts with number 1
         mon = Month.of(mn);
         System.out.println(mon);
      }
   }
}

Output

JANUARY
FEBRUARY
MARCH
APRIL
MAY
JUNE
JULY
AUGUST
SEPTEMBER
OCTOBER
NOVEMBER
DECEMBER

Approach 2: By Using java.util.Date and Arrays

In this approach, String Arrays are used to store short forms of months, such as Jan, Feb, etc. The substring method is used to identify the month part in the date and printed it in the specified format.

Example

import java.util.Date;
public class ShowMonth11{
   public static void main(String[] args) {

      // Months are stored as arrays
      String[] st_arr={"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep","Oct","Nov","Dec"};
      String[] seq_arr={"First", "Second", "Third", "Fourth", "Fifth", "Sixth", "Seventh", "Eighth", "Ninth","Tenth","Eleventh","Twelfth"};

      // Fetch the current date
      Date dt = new Date();
      String dtstr= dt.toString();
      
      // printing the months
      for (int mn=0; mn<12; mn++){
         System.out.println("The Number " + seq_arr[mn]+ " month in the year is : " +st_arr[mn]);
      }

      //selecting the month part from the date
      String substr2 = dtstr.substring(4,7);
      System.out.println("\nThe Time now is " + dt);
      System.out.println("\nThe current month is " + substr2);
   }
}

Output

The Number First month in the year is : Jan
The Number Second month in the year is : Feb
The Number Third month in the year is : Mar
The Number Fourth month in the year is : Apr
The Number Fifth month in the year is : May
The Number Sixth month in the year is : Jun
The Number Seventh month in the year is : Jul
The Number Eighth month in the year is : Aug
The Number Ninth month in the year is : Sep
The Number Tenth month in the year is : Oct
The Number Eleventh month in the year is : Nov
The Number Twelfth month in the year is : Dec
The Time now is Fri Feb 24 13:19:06 IST 2023
The current month is Feb

Approach-3: By Using String and its Methods

In this approach, the date is entered as a String. Then using the substring method the month part is identified and printed. The month can be displayed even in the Number form.

Example

public class ShowMonth22{
   public static void main(String[] args) {
      String dtstr= "02-24-2023";
      String dtstr1= "24-02-2023";
      
      //getting the month part of the date
      String substr2 = dtstr.substring(0,2);
      System.out.println("\nThe date is " + dtstr);
      System.out.println("\nThe current month is " + substr2);
      
      //getting the month part of the date
      String substr3 = dtstr1.substring(3,5);
      System.out.println("\nThe date is " + dtstr1);
      System.out.println("\nThe current month is " + substr3);
   }
}

Output

The date is 02-24-2023
The current month is 02
The date is 24-02-2023
The current month is 02

Approach-4: By Using java.text.SimpleDateFormat

In this approach, different formats can be specified as patterns for displaying the date. Month formats in the date are printed in MMM form (such as Feb) or in MMMM form (such as February). It can also be used to display month names in different locale formats and languages. For eq, in Spanish febrero is printed for February.

Example

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class ShowMonth33{
   public static void main(String[] args) {
      Date dtt = new Date();
      
      // MMM means date specification such as Feb, Mar etc
      SimpleDateFormat formatted_mmm;
      
      // MMMM means date specification such as February, March etc
      SimpleDateFormat formatted_mmmm;
      SimpleDateFormat formatted_datestyle;
      SimpleDateFormat formatted_datestyle1;
      formatted_mmm = new SimpleDateFormat("MMM");
      System.out.println(formatted_mmm.format(dtt));
      formatted_mmmm = new SimpleDateFormat("MMMM");
      System.out.println(formatted_mmmm.format(dtt));
      
      //Specifying the pattern of showing date time
      formatted_datestyle = new SimpleDateFormat("EEEE dd MMMM yyyy kk:mm:ss");
      System.out.println(formatted_datestyle.format(dtt));
      
      //Specifying the pattern of showing date time
      formatted_datestyle1 = new SimpleDateFormat("dd MMM yyyy kk:mm:ss");
      System.out.println(formatted_datestyle1.format(dtt));
      
      //setting for the Spanish language
      Locale spanishDT = new Locale("es","ES");
      System.out.println("Now using Spanish: ");
      System.out.printf(spanishDT, "month: %tB\n", dtt);
      
      //setting for the French language
      SimpleDateFormat dt_fr = new SimpleDateFormat("dd MMM yyyy kk:mm:ss", new Locale("fr"));
      System.out.println("Now using French: ");
      System.out.println(dt_fr.format(dtt));
   }
}

Output

Feb
February
Friday 24 February 2023 19:48:31
24 Feb 2023 19:48:31
Now using Spanish:
month: febrero
Now using French:
24 févr. 2023 19:48:31

Approach 5: By Using java.util.Calendar

In this approach, the Calender object is used and Calendar.MONTH is used to find the month. Here the index starts from 0 so 1 is added to the Calendar.MONTH to print the correct month in the date.

Example

import java.util.Calendar;
public class ShowMonth44{
   public static void main(String[] args) {
      
      //using Calendar instance
      Calendar cal = Calendar.getInstance();
      
      //getting Time from cal
      System.out.println("The Current Date is: " + cal.getTime());
      
      // Calendar Months start with 0 index therefore 1 is added for the correct result
      System.out.println("Current Calendar Month is : " + (cal.get(Calendar.MONTH) +1 ) );
   }
}

Output

The Current Date is: Fri Feb 24 19:12:06 IST 2023
Current Calendar Month is: 2

Conclusion

In this article, we explored different formats of the Month using Java language. The different code examples as well as the outputs are also given for each approach that is used.

Updated on: 23-Mar-2023

411 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements