У меня есть число, представляющее день недели (например, непосредственно из константы Calendar.MONDAY
). Теперь я хотел бы получить видимый пользователю текст того дня (используя локаль моего мобильного телефона по умолчанию для правильного перевода). У меня еще нет экземпляра Calendar
, только номер!
В настоящее время я использую приведенный ниже код, но мне кажется, что это должно быть проще или, по крайней мере, без создания полного экземпляра Calendar
(но я не нахожу способа легко установить день_недели на дату).
private String LOCALE = Locale.getDefault();
private String FORMAT_DAY_OF_WEEK = "EEEE";
public convertDayOfWeekFromNumberToText(int dayOfWeekNumber) {
Calendar cal = Calendar.getInstance(LOCALE);
cal.set(Calendar.DAY_OF_WEEK, dayOfWeekNumber);
return new SimpleDateFormat(FORMAT_DAY_OF_WEEK, LOCALE).format(cal.getTime());
}
Это действительно самый простой способ получить текст? И есть ли лучшее решение, если вы хотите получить максимальную производительность?
пс. если решения Java7 и Java8 отличаются, укажите оба.
Изменить
Благодаря комментариям John16384 @ я нашел лучшее решение (см. ответ). Я преобразовал util-метод, описанный выше, в 2 разных метода (1 для короткого и 1 для длинного формата). Дополнительные решения все равно будут оценены!