web-dev-qa-db-ja.com

Joda Timeで短い月の名前を取得するにはどうすればよいですか?

JodaTimeまたはJava自体にintまたはStringのいずれかを引数として取り、たとえば4または "4"を取り、月の名前を短くするメソッドがあるかどうかを誰かが知っていますか?形式、つまり1月のJAN?

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

20
Mr Morgan

Jonの回答に応えて、日時クラスにJodaの直接アクセスを使用することで、これをさらに単純化できます。

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

「MMM」はJodaで月の名前を付けると思いますが、最初に適切なフォーマッターを作成する必要があります。これが私のボックスに「4月」を印刷するサンプルコードです。 (もちろん、関連するロケールを指定できます。)

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);
    }
}
18
Jon Skeet

次のように実行できます。

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

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

参照

4
Nabin
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
user3461390