Последние мои часы должны слева показывать название месяца; все названия (месяцы/дни недели) у меня локализуются, ну красиво же - но при выводе форматтером названия месяца с установленной русской локалью эта *** выводит текущий месяц как "Июля" вместо "Июль"
Ппц
String.format("%1$tB", curDateTime)выдает "июля",
SimpleDateFormat df = new SimpleDateFormat("MMMM", symbols);тоже выдает "июля"; в доке написано, что можно использовать модификатор (?) "L", он мол как раз для случая русского языка, когда у месяцев суффиксы меняются в зависимоти от вариант использования.. но с "L" процесс просто падает
Гуглил-гуглил, толком ничего не пригуглил, только время потерял на гугления да тесты.. а надо было с самого начала наколхозить что-то типа:
final private String[] rusMonths = {"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октыбрь", "Ноябрь", "Декабрь"}; final private Locale rusLocale = new Locale("ru_RU"); ... if (Locale.getDefault().getDisplayLanguage().equals(rusLocale.getDisplayLanguage())) { DateFormatSymbols symbols = new DateFormatSymbols(rusLocale); symbols.setMonths(rusMonths); SimpleDateFormat df = new SimpleDateFormat("MMMM", symbols); remoteViews.setTextViewText(R.id.idMonth, df.format(curDateTime.getTime())); } else remoteViews.setTextViewText(R.id.idMonth, String.format("%1$tB", curDateTime));
Ну выглядит как-то странненько и страшненько (больше просто чтобы посмотреть, что это за DateFormatter и как юзается), но как всегда, KISS рулит
Комментариев нет:
Отправить комментарий