22

Joda Time または Java 自体に、整数または文字列 (4 または "4" など) を引数として取り、月の名前を短い形式 (つまり、1 月の JAN) で返すメソッドがあるかどうかを知っている人はいますか?

長い月名は切り捨てて大文字に変換できると思います。

4

5 に答える 5

67

Jonの回答に応えて、Jodaのdatetimeクラスへの直接アクセスを使用することで、それをさらに簡素化できます。

String month = date.toString("MMM");
于 2010-06-12T01:52:22.807 に答える
18

Joda では "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);
    }
}
于 2010-06-11T19:21:59.860 に答える
4

次のようにできます。

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

getAsText()また、長い月名にもメソッドを使用できます。

参照

于 2016-11-21T17:16:36.097 に答える
-3

これを使用することについての私の最後の答え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());
    }
}
于 2010-06-11T19:52:54.907 に答える