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 = December
month = 
shortMonth = Jan
shortMonth = Feb
shortMonth = Dec
shortMonth = 
germanyMonth = Januar
germanyMonth = Februar
germanyMonth = Dezember
germanyMonth = 
germanyShortMonth = Jan
germanyShortMonth = Feb
germanyShortMonth = Dez
germanyShortMonth = 


Programmer, runner, recreational diver, live in the island of Bali, Indonesia. Mostly programming in Java, Spring Framework, Hibernate / JPA.


    • The DateFormatSymbols‘s methods such as getMonths() 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.

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

    • Hi Venkat,

      What about copying the first 12 elements of the array into another array. Something like:

      String[] newMonths = java.util.Arrays.copyOfRange(months, 0, 12);

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.