Как получить короткие названия месяцев в Joda Time? - PullRequest
20 голосов
/ 11 июня 2010

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

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

Ответы [ 5 ]

63 голосов
/ 12 июня 2010

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

String month = date.toString("MMM");
18 голосов
/ 11 июня 2010

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

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);
    }
}
4 голосов
/ 21 ноября 2016

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

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

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

Ссылка

0 голосов
/ 23 мая 2016
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);
0 голосов
/ 11 июня 2010

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