2016-02-17 4 views
2

Я пытаюсь получить имена месяцев в приложении для Android. Это мой код:Java Calendar return month name родительный падеж

public static String getMonthString(Calendar calendar) { 
    return DateFormat.format("MMMM", calendar.getTime()).toString(); 
} 

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

"Январь" instead "Января" 
"Февраль" instead "Февраля" 
"Март" instead "Марта" 

Если установить английский язык код работает отлично.

"Janyary" 
"Fabryary" 
etc 

Может кто-нибудь мне помочь? Как получить правильные имена?

+0

вместо DateFormat.format вы можете использовать calendar.getDisplayName (Calendar.MONTH, Calendar.LONG, Locale.US) –

+0

H Raval , Я попробовал calendar.getDisplayName(). Если текущим языком является русский, этот метод возвращает имена генетических названий. Это не работает для меня. После этого я использую библиотеку Joda. И проблема все еще существует. Я думаю, что это спецификация платформы Android. У меня нет идей. – AlexeyPecherey

ответ

0

Если вы не используете Java 8, вы должны использовать "LLLL" вместо "MMMM". Чтобы получить то, что вы хотите, с первой заглавной буквы, вы можете использовать этот код: String month = new SimpleDateFormat("LLLL",Locale.getDefault()).format(date); month = month.substring(0, 1).toUpperCase() + month.substring(1);