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);
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top