Qual è un buon metodo per, dato due oggetti Data, confrontare la differenza tra la loro parte solo tempo, ignorando completamente Anno, Mese e Giorno?Confrontare solo la parte di tempo di due date, ignorando la parte di data
È esattamente l'opposto di this question.
UPDATE: Ecco il codice finale per riferimento futuro:
private long differenceBetween(Date currentTime, Date timeToRun)
{
Calendar currentCal = Calendar.getInstance();
currentCal.setTime(currentTime);
Calendar runCal = Calendar.getInstance();
runCal.setTime(timeToRun);
runCal.set(Calendar.DAY_OF_MONTH, currentCal.get(Calendar.DAY_OF_MONTH));
runCal.set(Calendar.MONTH, currentCal.get(Calendar.MONTH));
runCal.set(Calendar.YEAR, currentCal.get(Calendar.YEAR));
return currentCal.getTimeInMillis() - runCal.getTimeInMillis();
}
Sì, lo fa. Perché no? – kolrie
L'ironia di questa soluzione è che prendi due oggetti che sono involucri sottili attorno a una primitiva di tipo lungo, invoca un'API massiccia e complessa per convertire da oggetti lunghi a oggetti di Calendar ... solo per ritrovarti in un posto dove sei tu convertendo nuovamente da oggetti Calendar a longs. – scottb
@scottb - Vedere di seguito [la mia risposta] (http://stackoverflow.com/questions/7676149#7676307), che non interferisce con gli oggetti 'Calendar' ma usa solo i membri di' Date'. –