2015-07-20 2 views
0

Я пытаюсь получить отображаемое имя в месяц через это:Calendar.getDisplayName возвращение нулевой

final Calendar c = Calendar.getInstance(); 
    String monthName=c.getDisplayName(monthOfYear, Calendar.SHORT, Locale.US);//monthOfYear: 6 

но функция всегда возвращается null

пожалуйста, помогите мне.

+1

Что такое значение 'monthOfYear'? Если это не «Calendar.MONTH», вы делаете это неправильно. – CommonsWare

+0

Значение - '6' и ожидает, что он вернется в июле. Еще, как я могу получить отображаемое имя одного месяца. – Maven

ответ

2

Вы могли бы хотеть рассмотреть канавы Calendar, это немного тяжелый вес для такой простой задачи:

int monthOfYear = Calendar.JULY; // 6 
String monthName = new DateFormatSymbols(Locale.US).getShortMonths()[monthOfYear]; 

Обратите внимание, что вы можете кэшировать (даже в static переменном) возвращаемом значении getShortMonths() и индексе для различных месяцев спустя, просто будьте осторожны, нумерация начинается с 0 (= ЯНВАРЬ). Стоит кэшировать с getShortMonths() каждый раз возвращает новый массив мяты.

Пожалуйста, обратите внимание, используя DateFormatSymbols.getInstance(Locale.US) вместо new если вы ориентируетесь> Уровень API 9.

2

Else, как я могу получить отображаемое имя одного месяца.

Шаг №1: Создайте Calendar для даты, указанной в этом конкретном месяце.

Шаг №2: Позвоните getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US) на объекте Calendar с шага # 1.

Шаг № 3: Пиво.

Примечание: шаг № 3 является необязательным.