web-dev-qa-db-de.com

Gibt es ein Datumsformat, um den Wochentag in Java anzuzeigen?

Ich kenne Datumsformate wie
"yyyy-mm-dd" - Zeigt das Datum im Format 2011-02-26 An.
"yyyy-MMM-dd" - zeigt das Datum im Format 2011-FEB-26 An

verwendung zB in:

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

Ich möchte ein Format, das mir hilft, den Wochentag wie 2011-02-MON Oder etwas anderes anzuzeigen. Ich möchte nur, dass der Wochentag in Zeichen mit dem Monat und dem Jahr angezeigt wird. Kannst du mir ein solches Format nennen?

113
rogerstone

Dies sollte "Di" anzeigen:

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

Dies sollte "Dienstag" anzeigen:

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

Dies sollte 'T' anzeigen:

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

Ihr konkretes Beispiel wäre also:

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

Ja - 'E' macht den Trick

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 steht für Wochentag, zum Beispiel wird Donnerstag als Do angezeigt.

4
user2824143

Du siehst"

Siehe den Abschnitt über Datums- und Zeitmuster :

JavaDocs für SimpleDateFormat

3
DHall

tl; dr

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

Java.time

Der moderne Ansatz verwendet die Java.time-Klassen.

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

Beachten Sie, wie wir ein Locale wie Locale.CANADA_FRENCH Angeben, um die menschliche Sprache zu bestimmen, die zur Übersetzung des Tagesnamens verwendet wird.

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

ISO 8601

Übrigens könnten Sie an dem Standard interessiert sein ISO 8601 Woche Nummerierungsschema: yyyy-Www-d.

2018-W01-2

Woche 1 hat den ersten Donnerstag des Kalenderjahres. Die Woche beginnt an einem Montag. Ein Jahr hat entweder 52 oder 53 Wochen. Die letzten/ersten Tage eines Kalenderjahres können im nächsten/vorherigen wochenbasierten Jahr landen.

Die einstellige Zahl am Ende ist Wochentag, 1-7 für Montag-Sonntag.

Fügen Sie Ihrem Projekt die Bibliotheksklasse ThreeTen-Extra für die Klasse YearWeek hinzu.


About Java.time

Das Java.time Framework ist in Java 8 und höher. Diese Klassen ersetzen das lästige alte Legacy Datum-Zeit-Klassen wie Java.util.Date , Calendar , & SimpleDateFormat .

Das Joda-Time -Projekt, das sich jetzt im Wartungsmodus befindet, rät zur Migration in die Java.time -Klassen.

Weitere Informationen finden Sie im Oracle Tutorial . Durchsuchen Sie Stack Overflow nach vielen Beispielen und Erklärungen. Spezifikation ist JSR 31 .

Woher bekomme ich die Java.time-Klassen?

Das Projekt ThreeTen-Extra erweitert Java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von Java.time. Hier finden Sie möglicherweise einige nützliche Klassen wie Interval , YearWeek , YearQuarter und mehr .

3
Basil Bourque

Ich weiß, es geht darum, den Wochentag als Zeichenfolge zu erhalten (z. B. den Kurznamen), aber für alle, die nach dem numerischen Wochentag suchen (wie ich es war), können Sie die neue Zeichenfolge im "u" -Format verwenden, die unterstützt wird since Java 7. Zum Beispiel:

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

gibt den heutigen Wochentagsindex zurück, und zwar: 1 = Montag, 2 = Dienstag, ..., 7 = Sonntag.

0
Sal Borrelli