Ich möchte gerne wissen, welcher Wochentag der aktuelle Tag ist und nach der SimpleDateFormat Klasse Ausschau halten, dass das "F" genau das ist, was ich brauche. Also habe ich einen kleinen Test geschrieben:
%Vor%Heute ist Mittwoch und ich erwarte 3 als Ausgabe. Stattdessen bekomme ich 2.
Da Englisch nicht meine Muttersprache ist, habe ich die Bedeutung des Formats falsch verstanden?
F
- Wochentag im Monat
E
- Tagesname in der Woche
probiere u
- Nummer der Woche (1 = Montag, ..., 7 = Sonntag)
Beachten Sie, dass "u" seit Java 7 ist, aber wenn Sie nur die Wochentagsnummer benötigen, verwenden Sie Kalender
%Vor%Sie können den ersten Tag der Woche ändern, indem Sie das Gebietsschema oder direkt als
ändern %Vor% Heute ist - 09/01/2013(dd/MM/yyyy)
, die in Woche 2 fallen, also hat es 2 gedruckt.
Wenn Sie versuchen mit 16/01/2013
, dann würde es 3 drucken.
Der java.util.Calendar / .Date und verwandte Klassen sind ein verwirrendes Durcheinander, da Sie auf die harte Tour gelernt haben. Das Zählen von Null für Monatszahlen und Wochentagszahlen ist eine von vielen schlechten Entscheidungen, die in diesen alten Klassen getroffen werden.
Die alten Klassen wurden in Java 8 und später von der verdrängten java.time Framework. Die neuen Klassen sind inspiriert von dem sehr erfolgreichen Joda-Time Rahmen, sollte als seinen Nachfolger, vom Konzept her ähnlich, aber re- architekturiert. Definiert von JSR 310 . Erweitert um das ThreeTen-Extra Projekt. Weitere Informationen finden Sie im Lernprogramm .
DayOfWeek
Tag der Woche, verwenden Sie die gut namens DayOfWeek
enum .
Wenn Sie eine ganze Zahl für Tag-of-Woche kompatibel mit ISO 8601 wo Montag = 1 und Sonntag = 7 , können Sie das aus einer Instanz von DayOfWeek
extrahieren.
Wenn Sie mit einem java.util.Calendar-Objekt beginnen, konvertieren Sie es in java.time.
Ein Instant
ist ein Moment auf der Timeline in UTC .
Wenden Sie eine Zeitzone an, um ein Datum zu erhalten, um einen Wochentag zu erhalten.
%Vor%Beachten Sie, dass die Zeitzone entscheidend ist, um ein Datum und damit einen Wochentag zu bestimmen. Das Datum ist nicht gleichzeitig auf der ganzen Welt gleich. Ein neuer Tag dämmert früher in Paris als zum Beispiel in Montréal.
Jetzt, da wir java.time und diese Enum in Java gebaut, empfehle ich Ihnen frei um diesen Aufzählungs Instanzen passieren eher als ein magische Zahl .
Wenn Sie jedoch auf einer Ganzzahl bestehen, fragen Sie die DayOfWeek
.
Diese Enumeration erzeugt eine lokalisierte Zeichenfolge für den Namen des Wochentags.
%Vor%Tags und Links java