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

Lesezeit: 4 Minuten

Benutzer-Avatar
Rogerstein

Ich kenne Datumsformate wie z
"yyyy-mm-dd" -das Datum im Format anzeigt 2011-02-26
"yyyy-MMM-dd"-das Datum im Format anzeigt 2011-FEB-26

zu verwenden in zB:

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

Ich möchte ein Format, das mir helfen würde, den Wochentag anzuzeigen 2011-02-MON oder irgendwas. Ich möchte nur, dass der Wochentag in Zeichen mit dem Monat und dem Jahr angezeigt wird. Können Sie mir ein solches Format nennen?

  • Wie wäre es einfach mit dd als Format?

    – Johan Sjöberg

    25. Februar 2011 um 20:00 Uhr

  • Ich bin mir sicher, dass die API-Dokumente (download.oracle.com/javase/1.4.2/docs/api/java/text/…), geben Ihnen gerne eine Antwort.

    – M. Jessup

    25. Februar 2011 um 20:02 Uhr

  • was meinst du mit “tag” – wochentag, tag des monats. In Ihrem Beispiel wird das gesamte Datum angezeigt. Bitte zeigen Sie die genaue Ein- und Ausgabe, die Sie möchten.

    – Bozo

    25. Februar 2011 um 20:03 Uhr

  • Bei einem allgemeinen Rat, verwenden Sie besser die - Schreibweise nur mit Datumsangaben im ISO-Format (dh Jahr-Monat-Tag). Der Bindestrich wurde dort gewählt, da er zu dieser Zeit für keine anderen Datumsformate verwendet wurde, um Verwirrung zu vermeiden, und jetzt verwendet jeder seine benutzerdefinierte Reihenfolge mit dem Bindestrich …

    – Paulo Ebermann

    25. Februar 2011 um 20:17 Uhr

Benutzer-Avatar
Nathan Feger

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());

  • Schöne Lösung! Gesucht war: Montag, 04.04.2016. Also in meinem Fall new SimpleDateFormat("EEEE, dd/MM/yyyy"); wenn es jemandem in der Zukunft hilft.

    – AuroMetal

    1. April 2016 um 14:43 Uhr

  • Okay, es funktioniert. EEEE zeigt ganze Namen der Wochentage an – dh ‘Montag’, ‘Dienstag’ usw.

    – kosiara – Bartosz Kosarzycki

    4. Juni 2018 um 9:05 Uhr

  • Ich hatte nicht wirklich daran gedacht, dass es diese Seite überhaupt geben würde, geschweige denn, dass Java endlich dazu kommen würde, Dates zu retten. Es beantwortet technisch die OP-Frage. Ich kann jedoch wahrscheinlich einen neuen Abschnitt darüber hinzufügen, wie das neue java.time-Zeug funktioniert

    – Nathan Feger

    20. Juni 2019 um 21:28 Uhr

  • nice nice… EEEE ist der komplett ausgeschriebene Tagesname.

    – Gumuruh

    24. August um 6:12 Uhr

Yep – ‘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));

  • Oracle in der URL der Javadocs zu sehen, fühlt sich immer noch seltsam an.

    – Nathan Feger

    25. Februar 2011 um 20:05 Uhr

  • Wir benützen auch: DateFormat df = new SimpleDateFormat("yyyy-MM-EEEEEEE"); für die Anzeige langer DayOfWeek.

    – James Graham

    13. Juni 2015 um 10:37 Uhr

Benutzer-Avatar
Benutzer2824143

SimpleDateFormat sdf=new SimpleDateFormat("EEE");

EEE steht für Wochentag, Donnerstag wird beispielsweise als Thu angezeigt.

Benutzer-Avatar
Basil Bourque

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 a spezifizieren Locale wie zum Beispiel Locale.CANADA_FRENCH um die menschliche Sprache zu bestimmen, die verwendet wird, um den Namen des Tages zu übersetzen.

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

ISO 8601

Übrigens könnte Sie der Standard interessieren Woche nach ISO 8601 Nummernschema: yyyy-Www-d.

2018-W01-2

Woche Nr. 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 einzelne Ziffer am Ende ist der Wochentag, 1-7 für Montag-Sonntag.

Ergänzen Sie die ThreeTen-Extra Bibliotheksklasse zu Ihrem Projekt für die YearWeek Klasse.


Um java.time

Das java.time Framework ist in Java 8 und höher integriert. Diese Klassen ersetzen die lästigen alten Erbe Datum-Zeit-Klassen wie z java.util.Date, Calendar& SimpleDateFormat.

Das Joda-Zeit Projekt, jetzt in Wartungsmodusrät zur Migration in die java.time Klassen.

Weitere Informationen finden Sie unter Oracle-Tutorial. Und durchsuchen Sie Stack Overflow nach vielen Beispielen und Erklärungen. Spezifikation ist JSR310.

Wo erhalte ich die java.time-Klassen?

  • Java SE 8, Java SE 9und später
    • Eingebaut.
    • Teil der Standard-Java-API mit einer gebündelten Implementierung.
    • Java 9 fügt einige kleinere Funktionen und Korrekturen hinzu.
  • Java SE 6 und Java SE 7
    • Ein Großteil der java.time-Funktionalität wurde in Java 6 & 7 zurückportiert ThreeTen-Backport.
  • Android
    • Spätere Versionen von Android-Bundle-Implementierungen der java.time-Klassen.
    • Für frühere Android-Versionen ist die ThreeTenABP Projekt passt ThreeTen-Backport (oben erwähnt). Sehen Wie benutzt man ThreeTenABP….

Das ThreeTen-Extra project erweitert java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen zu java.time. Sie können hier einige nützliche Klassen finden, wie z Interval, YearWeek, YearQuarterund mehr.

Du siehst”

Siehe den Abschnitt über Datums- und Zeitmuster:

JavaDocs für SimpleDateFormat

Benutzer-Avatar
Sal Borelli

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

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

gibt den heutigen Wochentagindex zurück, nämlich: 1 = Montag, 2 = Dienstag, …, 7 = Sonntag.

1345240cookie-checkGibt es ein Datumsformat, um den Wochentag in Java anzuzeigen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy