Как получить короткие имена месяцев в Joda Time?

кто-нибудь знает, есть ли метод в Joda Time или Java, который принимает в качестве аргумента int или строку, например 4 или "4", и дает имя месяца в коротком формате, т. е. JAN для января?

Я полагаю, что длинные названия месяцев могут быть усечены и преобразованы в верхний регистр.

5 ответов


в ответ на ответ Джона вы можете еще больше упростить это, используя прямой доступ Joda для классов datetime.

String month = date.toString("MMM");

Я считаю, что "МММ" даст название месяца в Джоде... но сначала вам нужно создать соответствующий форматтер. Вот пример кода, который печатает " Apr " на моем ящике. (Конечно, вы можете указать соответствующую локаль.)

import org.joda.time.*;
import org.joda.time.format.*;

public class Test
{
    public static void main(String[] args)
    {
        // Year and day will be ignored
        LocalDate date = new LocalDate(2010, 4, 1);
        DateTimeFormatter formatter = DateTimeFormat.forPattern("MMM");
        String month = formatter.print(date);
        System.out.println(month);
    }
}

мы можем сделать следующее:

DateTime dt = new DateTime();  // current time
String monthStr = dt.month().getAsShortText();  // gets the month name

Также вы можете использовать getAsText() метод для длинного имени месяца.

ссылка


LocalDateTime fecha_sistema = LocalDateTime.now();

// return month value betwen 1 to 12
int month = fecha_sistema.getMonthValue();

// return month name
String mes = fecha_sistema.getMonth().name();

System.out.println("Month" + mes + "/ " + month);

мой последний ответ об использовании java.util.Calendar потому что это было немного сложнее, чем нужно. Вот более простая версия, хотя она по-прежнему требует Java 6 или новее.

import java.util.Calendar;
import java.util.Locale;

public class Test
{
    public static void main(String[] args)
    {
        // Sample usage.
        // Should be "Apr" in English languages
        String month = getMonthNameShort(4);
        System.out.println(month);
    }
    /**
     * @param month Month number
     * @return The short month name
     */
    public static String getMonthNameShort(int month)
    {
        Calendar cal = Calendar.getInstance();
        // Calendar numbers months from 0
        cal.set(Calendar.MONTH, month - 1);
        return cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.getDefault());
    }
}