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?
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());
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));
SimpleDateFormat sdf=new SimpleDateFormat("EEE");
EEE steht für Wochentag, zum Beispiel wird Donnerstag als Do angezeigt.
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
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 ) ;
Ü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.
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 .
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.