How do I get a list of month names?

The example code below helps you to get all month names as an array of String. The first method, getMonths() return the full name string while the second method getShortMonths() return the short name of the month.

package org.kodejava.example.text;

import java.text.DateFormatSymbols;
import java.util.Locale;

public class MonthNames {
    public static void main(String[] args) {
        String[] months = new DateFormatSymbols().getMonths();
        for (String month : months) {
            System.out.println("month = " + month);
        }

        String[] shortMonths = new DateFormatSymbols().getShortMonths();
        for (String shortMonth : shortMonths) {
            System.out.println("shortMonth = " + shortMonth);
        }

        DateFormatSymbols dfs = new DateFormatSymbols(Locale.GERMANY);
        String[] germanyMonths = dfs.getMonths();
        for (String germanyMonth : germanyMonths) {
            System.out.println("germanyMonth = " + germanyMonth);
        }

        String[] germanyShortMonths = dfs.getShortMonths();
        for (String germanyShortMonth : germanyShortMonths) {
            System.out.println("germanyShortMonth = "
                    + germanyShortMonth);
        }
    }
}

The results of the code above are:

month = January
month = February
month = March
month = April
month = May
month = June
month = July
month = August
month = September
month = October
month = November
month = December
month = 
shortMonth = Jan
shortMonth = Feb
shortMonth = Mar
shortMonth = Apr
shortMonth = May
shortMonth = Jun
shortMonth = Jul
shortMonth = Aug
shortMonth = Sep
shortMonth = Oct
shortMonth = Nov
shortMonth = Dec
shortMonth = 
germanyMonth = Januar
germanyMonth = Februar
germanyMonth = März
germanyMonth = April
germanyMonth = Mai
germanyMonth = Juni
germanyMonth = Juli
germanyMonth = August
germanyMonth = September
germanyMonth = Oktober
germanyMonth = November
germanyMonth = Dezember
germanyMonth = 
germanyShortMonth = Jan
germanyShortMonth = Feb
germanyShortMonth = Mär
germanyShortMonth = Apr
germanyShortMonth = Mai
germanyShortMonth = Jun
germanyShortMonth = Jul
germanyShortMonth = Aug
germanyShortMonth = Sep
germanyShortMonth = Okt
germanyShortMonth = Nov
germanyShortMonth = Dez
germanyShortMonth = 

Wayan Saryada

Programmer, runner, recreational diver, currently living in the island of Bali, Indonesia. Mostly programming in Java, creating web based application with Spring Framework, Hibernate / JPA.

3 Comments

  1. The DateFormatSymbols‘s methods such as etMonths() or getShortMonths() shown in the snippet above returns an array of 13 strings. It’s because some calendars system can have 13 months.

    Because we are working with a system that have 12 months calendars system, it gives us an empty element at the end of the array.

  2. I see. One would think that the implementation of those methods would take into account the calendar system for the default locale. Apparently that’s not the case. It seems like an intern must have written those methods.

Leave a Reply