Frage

Ich versuche, Daten zu vergleichen und ich habe festgestellt, wo mein Code schief geht, aber ich weiß nicht, warum.

Ich versuche, ein Datum mit dem heutigen Datum zu vergleichen (mit gregorianischen Kalender nur). Ich habe die heutige Datum ausgedruckt, wo immer es im Code genannt wird und an einem Ort es auf magische Weise von Jahr wechselt 2010 zu Jahr 3910 (heute Jahr + 1900).

Kennt jemand einen Grund dafür?

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 2010
System.out.println(todaysDate);

//Getting a year from a string (it is 2010)
todaysDate.setYear(Integer.parseInt(yea));

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 3910   
System.out.println(todaysDate);
War es hilfreich?

Lösung

Das Datum wird in der Regel als „Anzahl der Jahre seit 1900“ gespeichert, so dass Sie für das kompensieren müssen. Sie können, dass in der Dokumentation zu Date siehe: http://developer.android.com /reference/java/util/Date.html

EDIT: Ich sollte erwähnen, was ich als Kommentar gepostet. Jeff Sharkey empfohlen gegen die Kalender-Klasse (wenn Sie das auch verwenden). android.text.format.DateUtils ist viel leichter (Sie werden sehen, dass das Telefon für ein wenig abgewürgt, wenn Sie zuerst die Kalender-Klasse laden, vor allem auf alte Telefone). DateUtils ist in Android 1.5 oder höher verfügbar.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top