SimpleDateformat und "Wochentag im Monat" (F)

7

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?

    
Francesco 09.01.2013, 09:28
quelle

6 Antworten

19

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%     
Evgeniy Dorofeev 09.01.2013, 09:36
quelle
12

Heute ist der zweite Mittwoch des aktuellen Monats.

    
kan 09.01.2013 09:35
quelle
1

Die Indizes für die Wochentage beginnen bei 0, nicht bei 1.

    
Juvanis 09.01.2013 09:30
quelle
1
%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.

    
Subhrajyoti Majumder 09.01.2013 09:32
quelle
1

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.

java.time

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.

Konvertierung

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 .

%Vor%

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.

Anzahl der Wochentage

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 .

%Vor%

String des Wochentags

Diese Enumeration erzeugt eine lokalisierte Zeichenfolge für den Namen des Wochentags.

%Vor%     
Basil Bourque 17.12.2015 20:31
quelle
0

verwenden Sie einfach diese Methode dafür.

%Vor%     
vitralyoz 22.11.2013 10:26
quelle

Tags und Links