0

この質問は解決できません。

私はこのコードを書きました:

public static String getMonthName(int year, int month, int day){
    Locale locale = Locale.getDefault();
    SimpleDateFormat sdf = new SimpleDateFormat("MMMM",locale);
    Date date = new Date();
    date.setDate(day);
    date.setMonth(month);
    date.setYear(year);
    return sdf.format(date);
}

これは非常にうまく機能しますが、月= 1(つまり2月)の場合、月の名前は3月であり、2月ではありません。なんで?

このコードは、他のすべての日と月に非常にうまく機能します...

There is another way to get translated month name?

Please help me....

4

2 に答える 2

5

関数を呼び出す方法によっては (たとえば、現在の日を 2013 年には存在しない 2 月 29 日として使用するなど)、月を自動的にインクリメントすることができます。

問題を回避するこの関数の使用をお勧めします。

public static String getMonthName(int month){
    Locale locale = Locale.getDefault();
    SimpleDateFormat sdf = new SimpleDateFormat("MMMM",locale);
    Date date = new Date();
    date.setDate(1);
    date.setMonth(month);
    date.setYear(2012);
    return sdf.format(date);
}
于 2012-11-29T10:36:25.733 に答える
0

これは、月がゼロ インデックスから始まるためです。したがって、このロジックを使用する必要があります。

if(day >0)
{
day =day -1;
}
于 2012-11-29T10:48:31.643 に答える