私の知る限り、Java では通常モード (金曜日) または短いモード (金曜日) で平日を取得できます。しかし、最初の文字だけを取得する方法はありますか?
「部分文字列」を使用して最初の文字を取得できると思いましたが、すべての言語で正しいとは限りません。たとえば、スペイン語の平日は、Lunes、Martes、Miércoles、Jueves、Viernes、Sábado、Domingo であり、"Miércoles" の最初の文字は M ではなく X で、"Martes" と区別されます。
Android では、「EEEEE」で SimpleDateFormat を使用できます。次の例でそれを見ることができます。
SimpleDateFormat formatLetterDay = new SimpleDateFormat("EEEEE",Locale.getDefault());
String letter = formatLetterDay.format(new Date());
前述のように、これに対する標準の 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)+"";
}
それを行うための標準 Java API サポートはありません。
その理由の 1 つとして、多くの (おそらくほとんどの) 言語には、従来の固有の 1 文字の平日の省略形がないことが挙げられます。英語では、たとえば (MTWTFSS) はありません。
多くの/ほとんどのロケールで機能しない (架空の) 書式設定オプションは、助けではなく、国際化の障害になります。
1 - これは人間的な意味での意味です。慣習を発明することはできますが、人々は略語の意味を理解できません。
最初の文字を取得するための直接的なJava関数はなく、それを行う標準的な方法もないと思います。
このリンクを参照して、substring() Java メソッドを使用して文字列の日の最初の文字を取得できます。