17

私の知る限り、Java では通常モード (金曜日) または短いモード (金曜日) で平日を取得できます。しかし、最初の文字だけを取得する方法はありますか?

「部分文字列」を使用して最初の文字を取得できると思いましたが、すべての言語で正しいとは限りません。たとえば、スペイン語の平日は、Lunes、Martes、Miércoles、Jueves、Viernes、Sábado、Domingo であり、"Miércoles" の最初の文字は M ではなく X で、"Martes" と区別されます。

4

5 に答える 5

14

Android では、「EEEEE」で SimpleDateFormat を使用できます。次の例でそれを見ることができます。

SimpleDateFormat formatLetterDay = new SimpleDateFormat("EEEEE",Locale.getDefault());
String letter = formatLetterDay.format(new Date());
于 2014-06-25T14:53:52.253 に答える
6

前述のように、これに対する標準の 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)+""; 
}
于 2014-10-01T01:11:42.317 に答える
4

それを行うための標準 Java API サポートはありません。

その理由の 1 つとして、多くの (おそらくほとんどの) 言語には、従来の固有の 1 文字の平日の省略形がないことが挙げられます。英語では、たとえば (MTWTFSS) はありません。

多くの/ほとんどのロケールで機能しない (架空の) 書式設定オプションは、助けではなく、国際化の障害になります。


1 - これは人間的な意味での意味です。慣習を発明することはできますが、人々は略語の意味を理解できません。

于 2013-06-06T10:23:06.957 に答える
0

最初の文字を取得するための直接的なJava関数はなく、それを行う標準的な方法もないと思います。

このリンクを参照して、substring() Java メソッドを使用して文字列の日の最初の文字を取得できます。

Java で文字列を指定すると、最初の X 文字を取るだけです

于 2013-06-06T10:24:01.967 に答える