Получите одну буквенную аббревиатуру от недельного дня даты в java

Насколько я знаю, на Java я могу получить будние дни в нормальном (пятница) или коротком режиме (Fri). Но есть ли способ получить только первую букву?

Я думал, что могу получить первое письмо, используя "подстроку", но это будет неверно для всех языков. Например, испанские будни: Lunes, Martes, Miércoles, Jueves, Viernes, Sábado и Domingo, а первое письмо для "Miércoles" - это X вместо M, чтобы разделить его с "Martes".

Ответ 1

В Android вы можете использовать SimpleDateFormat с "EEEEE". В следующем примере вы можете увидеть его.

SimpleDateFormat formatLetterDay = new SimpleDateFormat("EEEEE",Locale.getDefault());
String letter = formatLetterDay.format(new Date());

Ответ 2

Как уже упоминалось выше, для этого нет стандартной поддержки Java. Однако использование строки форматирования "EEEEE" не гарантирует работу на всех устройствах Android. Следующий код гарантированно работает на любом устройстве:

public String firstLetterOfDayOfTheWeek(Date date) {

    Locale locale = Locale.getDefault(); 
    DateFormat weekdayNameFormat = new SimpleDateFormat("EEE", locale); 
    String weekday = weekdayNameFormat.format(date); 
    return weekday.charAt(0)+""; 
}

Ответ 3

Для этого не существует стандартной поддержки API Java.

Отчасти причина в том, что многие (возможно, даже самые) языки не имеют обычных уникальных однобуквенных сокращений в будние дни. На английском языке, например, нет (M T W T F S S).

А (гипотетический) вариант форматирования, который не работает 1 во многих/большинстве локалей, будет препятствием для интернационализации, а не помощи.


1 - Я имею в виду это в человеческом смысле. Вы могли бы придумать конвенцию, но люди не понимали, что означают сокращения.

Ответ 4

Я понимаю, что OP просил стандарты на разных языках, и это не касается. Но есть/был стандарт для использования аббревиатуры Day of Week одного символа.

В дни мэйнфрейма с использованием аббревиатуры 1-го дня для Дня недели было распространено либо сохранение дня недели в поле с 1 символом (для сохранения драгоценного пространства), либо заголовок отчета для столбца с одним символом. "Стандартом" было использование MTWRFSU, где R было в четверг, и U для воскресенья.

Я не мог найти окончательных ссылок на это (именно поэтому я процитировал "стандарт", но вот несколько примеров: http://eventguide.com/topics/one_digit_day_abbreviations.html http://www.registrar.ucla.edu/soc/definitions.htm#Anchor-Days-3800

Ответ 5

Я думаю, что нет прямой функции java для получения первой буквы и стандартного способа ее выполнения.

Вы можете обратиться к этой ссылке, чтобы получить первую букву дня строки, используя метод substring() java

Учитывая строку в Java, просто возьмите первые буквы X