Anni sono corretti nelle classi data di Android
-
09-10-2019 - |
Domanda
Sto cercando di confrontare le date e ho trovato in cui il mio codice va male, ma io non so perché.
Sto cercando di confrontare un appuntamento con la data odierna (usando solo i calendari gregoriano). Ho stampato la data di oggi, dove mai è menzionato nel codice e in un unico luogo cambia magicamente dal 2010 al 3910 anno (anno di oggi + 1900).
Qualcuno sa qualsiasi ragione di questo?
//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);
Soluzione
La data è in genere memorizzato come "numero di anni a partire dal 1900", quindi è necessario per compensare questo. Si può vedere che nella documentazione per Date
: http://developer.android.com /reference/java/util/Date.html
EDIT: Devo dire quello che ho postato come commento. Jeff Sharkey consigliato contro la classe del calendario (se si sta utilizzando anche questo). android.text.format.DateUtils è molto più leggero (si vedrà che il telefono bancarelle per un po 'la prima volta che carica la classe Calendar, in particolare sui vecchi telefoni). DateUtils è disponibile in Android 1.5 e superiori.