Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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);
    }
}

Ответ 3

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

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

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

Ссылка

Ответ 4

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

Ответ 5

Мой последний ответ об использовании 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());
    }
}