Wie bekomme ich das aktuelle Jahr in Android?

10

Ich habe es versucht

%Vor%

aber es gibt mir Kompilierzeit Fehler

  

Nicht-statische Methode 'get (int)' kann nicht aus einem statischen Kontext referenziert werden.

Ich rufe diese Methode von der Call-Methode der beobachtbaren.

%Vor%

Ich habe auch (new Date()).getYear(); gesehen, aber es ist veraltet.

    
Shubh 28.12.2016, 06:05
quelle

7 Antworten

42

Weil Sie zuerst eine Instanz erstellen müssen.

probiere das

aus %Vor%

und du bist gut zu gehen.

    
dsncode 28.12.2016, 06:08
quelle
1

Ja, Sie erhalten einen Fehler, weil dies keine statische Methode ist. Zuerst müssen Sie eine Instanz der Calendar-Klasse erstellen.
d. h.

%Vor%

und hier bekommst du Jahr, aktuelles Jahr!

    
Wajid Ali 28.12.2016 06:09
quelle
1
%Vor%     
Wrong Chao 28.12.2016 06:17
quelle
1

tl; dr

%Vor%

java.time

Die anderen Antworten verwenden die problematischen alten Datum-Uhrzeit-Klassen wie Kalender. Diese werden durch die Klassen java.time ersetzt. Ältere Versionen von Android finden Sie in den ThreeTen-Backport- und ThreeTenABP-Projekten.

Year class

Statt nur ganze Zahlen herumzureichen, um ein Jahr darzustellen, gehen Sie um Objekte herum. Nämlich die Year Klasse.

Für das aktuelle Jahr ist eine Zeitzone erforderlich. Für jeden Moment variiert das Datum von Zone zu Zone. So ist es möglich, dass Pacific/Auckland 2018 ist, während America/Montreal gleichzeitig 2017 ist.

Es ist besser, die gewünschte / erwartete Zone explizit zu übergeben. Ohne Angabe erhalten Sie implizit die aktuelle Standardzeitzone der JVM. Dieser Standard kann sich während der Laufzeit jederzeit ändern, ist also nicht zuverlässig.

%Vor%

Wenn Sie eine Ganzzahl benötigen, extrahieren Sie den Wert.

%Vor%

Über java.time

Das Framework java.time ist in Java integriert 8 und später. Diese Klassen ersetzen die problematischen alten Legacy Datum-Uhrzeit-Klassen wie java.util.Date , Calendar , & amp; SimpleDateFormat .

Das Joda-Time Projekt, jetzt in Wartungsmodus , rät Migration zum java.time Klassen.

Weitere Informationen finden Sie im Oracle-Lernprogramm . Und suchen Sie nach Stack Overflow für viele Beispiele und Erklärungen. Spezifikation ist JSR 310 .

Wo erhalten Sie die Klassen java.time?

Basil Bourque 04.10.2017 13:48
quelle
0

sollten Sie

verwenden

Calendar.getInstance().get(Calendar.YEAR) ;

    
Rajen Raiyarela 28.12.2016 06:08
quelle
0

Haben Sie den folgenden Code ausprobiert?

Kalender c = Calendar.getInstance ();

%Vor%     
Zidane 04.10.2017 08:48
quelle
-1

Sie können Calendar.getInstance() .get(Calendar.YEAR ) auch für Kotlin Sprachzwecke verwenden

    
Mustafa Karim 04.10.2017 08:44
quelle

Tags und Links