web-dev-qa-db-ja.com

Javaで曜日を表示する日付形式はありますか?

私は次のような日付形式を知っています
"yyyy-mm-dd"-2011-02-26の形式で日付を表示します
"yyyy-MMM-dd"- 2011-FEB-26の形式で日付を表示します

例で使用される:

SimpleDateFormat formatter = new SimpleDateFormat(
                "yyyy/MMM/dd ");

2011-02-MONなどのような曜日を表示するのに役立つ形式が必要です。曜日を月と年の文字で表示したいだけです。このような形式について教えてください。

113
rogerstone

これは「火」を表示するはずです:

new SimpleDateFormat("EEE").format(new Date());

これにより、「火曜日」が表示されます。

new SimpleDateFormat("EEEE").format(new Date());

これは「T」を表示する必要があります:

new SimpleDateFormat("EEEEE").format(new Date());

したがって、具体的な例は次のようになります。

new SimpleDateFormat("yyyy-MM-EEE").format(new Date());
276
Nathan Feger

うん-'E'はトリックをします

http://download.Oracle.com/javase/6/docs/api/Java/text/SimpleDateFormat.html

Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-E");
System.out.println(df.format(date));
16
toolkit
SimpleDateFormat sdf=new SimpleDateFormat("EEE");

EEEは曜日を表します。たとえば、木曜日はThuとして表示されます。

4
user2824143

ほら"

日付および時刻パターンのセクションを参照してください:

SimpleDateFormatのJavaDocs

3
DHall

tl; dr

LocalDate.of( 2018 , Month.JANUARY , 23 )
         .format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US )  )

Java.time

最新のアプローチでは、Java.timeクラスを使用します。

LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;

Locale.CANADA_FRENCHなどのLocaleを指定して、曜日の名前の翻訳に使用する人間の言語を決定する方法に注意してください。

DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;

ISO 8601

ところで、標準 ISO 8601週 番号付けスキームに興味があるかもしれません:yyyy-Www-d

2018-W01-2

第1週には、暦年の最初の木曜日があります。週は月曜日に始まります。 1年には52週間または53週間があります。暦年の最後/最初の数日は、次/前の週ベースの年に着陸する場合があります。

末尾の1桁は曜日で、月曜日から日曜日は1〜7です。

YearWeekクラスのプロジェクトにThreeTen-Extraライブラリクラスを追加します。


Java.timeについて

Java.time フレームワークは、Java 8以降に組み込まれています。これらのクラスは、 Java.util.DateCalendar 、および SimpleDateFormat などの厄介な古い レガシー 日時クラスに取って代わります。

メンテナンスモード になった Joda-Time プロジェクトは、 Java.time クラスへの移行を推奨しています。

詳細については、 Oracle Tutorial を参照してください。また、多くの例と説明についてはStack Overflowを検索してください。仕様は JSR 31 です。

Java.timeクラスはどこで入手できますか?

  • Java SE 8Java SE 9 、およびそれ以降
    • ビルトイン。
    • 実装がバンドルされた標準Java AP​​Iの一部。
    • Java 9は、いくつかのマイナーな機能と修正を追加します。
  • Java SE 6 および Java SE 7
    • Java.time機能の多くは、 ThreeTen-Backport のJava 6および7にバックポートされています。
  • Android
    • Androidの後のバージョンは、Java.timeクラスの実装をバンドルします。
    • 以前のAndroidの場合、 ThreeTenABP プロジェクトはThreeTen-Backport(上記)に適合します。 ThreeTenABPの使用方法… を参照してください。

ThreeTen-Extra プロジェクトは、追加のクラスでJava.timeを拡張します。このプロジェクトは、Java.timeに将来追加される可能性のある証明の場です。 IntervalYearWeekYearQuarter 、および more などの便利なクラスがあります。

3
Basil Bourque

私は質問が文字列として曜日を取得することに関するものであることを知っています(たとえば、短い名前) since Java 7.次に例を示します。

new SimpleDateFormat("u").format(new Date());

つまり、今日の曜日のインデックス、つまり1 =月曜日、2 =火曜日、...、7 =日曜日を返します。

0
Sal Borrelli