最も簡単な方法:
String[] namesOfDays = new String[7] {
"Sun", "MON", "TUE", "WED", "THU", "FRI", "SAT"
};
このメソッドはロケールを使用しません。したがって、システムの言語が英語でない場合、この方法は正しく機能しません。
Joda時間を使用すると、次のようにできます。
String[] namesOfDays = new String[7];
LocalDate now = new LocalDate();
for (int i=0; i<7; i++) {
/* DateTimeConstants.MONDAY = 1, TUESDAY = 2, ..., SUNDAY = 7 */
namesOfDays[i] = now.withDayOfWeek((DateTimeConstants.SUNDAY + i - 1) % 7 + 1)
.dayOfWeek().getAsShortText();
}
ただし、この方法では、今日の日付とカレンダーの計算を使用しますが、これらは最終目的には使用できません。また、少し複雑です。
システムのデフォルトロケールで"Sun"
、"Mon"
、...、"Sat"
などの文字列を取得する簡単な方法はありますか?
私があなたを誤解していないなら
calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.US);
あなたが探しているものです。 ここ ドキュメントを見つけることができます、
または、 getShortWeekdays() を使用することもできます
String[] namesOfDays = DateFormatSymbols.getInstance().getShortWeekdays()
Date now = new Date();
// EEE gives short day names, EEEE would be full length.
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE", Locale.US);
String asWeek = dateFormat.format(now);
希望する日時で日付を作成できます。そして、あなたが望むものを達成します。
DayOfWeek.MONDAY.getDisplayName(
TextStyle.SHORT ,
Locale.getDefault()
)
Joda-Time プロジェクトは、現在 メンテナンスモード であり、 Java.time クラスへの移行を推奨しています。 Java.timeの多くは、Android(下記参照)にバックポートされています。
DayOfWeek
DayOfWeek
enumは、曜日ごとに1つずつ、7つのオブジェクトを定義します。このクラスには、ローカライズされた曜日名の文字列を生成するgetDisplayName
などの便利なメソッドがいくつか用意されています。
ローカライズするには、次を指定します。
例:
String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.SHORT , Locale.CANADA_FRENCH );
指定する代わりに、JVMの現在のデフォルトのタイムゾーンを使用できます。ただし、リスクに留意してください。デフォルトゾーンは、いつでも変更できます実行中は、JVM内で実行されているアプリのスレッドのコードによって変更できます。
Locale locale = Locale.getDefault() ;
String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.SHORT , locale );
Java.time フレームワークはJava 8以降に組み込まれています。これらのクラスは、面倒な古い legacy のような日時クラスに取って代わります- Java.util.Date
、 Calendar
、& SimpleDateFormat
。
Joda-Time プロジェクトは、現在 メンテナンスモード であり、 Java.time クラスへの移行を推奨しています。
詳細については、 Oracle Tutorial を参照してください。また、Stack Overflowで多くの例と説明を検索してください。指定は JSR 31 です。
Java.timeクラスはどこで入手できますか?
1.8がなければ、 DateFormatSymbols
を使用できます(Androidでも動作します)。
DateFormatSymbols.getWeekdays()
戻り値:曜日の文字列。 Calendar.SUNDAY、Calendar.MONDAYなどを使用して、結果の配列にインデックスを付けます。