2015-03-22 16 views
33

Sto scrivendo un app che ha bisogno di essere abbastanza preciso in date e mi chiedo come posso confrontare istanze LocalDate .. per ora stavo usando qualcosa come:Come confrontare le istanze LocalDate Java 8

LocalDate localdate1 = LocalDate().now(); 
LocalDate localdate2 = someService.getSomeDate(); 
localdate1.equals(localdate2); 

Ma Ho notato che la mia app mi sta dando dei risultati confusi e penso che sia dovuto alla data di comparazione.

Sto pensando di ottenere il tempo dal 1970' a lungo e confrontare quei due, ma devo essere più facile, io sono sicuro di esso

+0

Che tipo di risultati confusi? Il dox per 'equals' dice _" Confronta ... assicurandoti che la data sia la stessa "_. Sembra la cosa giusta nel tuo caso. – Lii

+0

È stato un mio errore, la fonte del problema è stata posta in un'altra, tuttavia sono curioso di sapere se questo è un modo appropriato per confrontare i dati locali :) – azalut

+0

Per quanto riguarda la tua idea di usare un conteggio di epoca del 1970, evita di fare quella. È complicato e difficile da eseguire il debug. Le moderne classi java.time eliminano ogni necessità di una gestione così scomoda. –

risposta

41

Utilizzando equals() LocalDate fa Override uguale:

int compareTo0(LocalDate otherDate) { 
    int cmp = (year - otherDate.year); 
    if (cmp == 0) { 
     cmp = (month - otherDate.month); 
     if (cmp == 0) { 
      cmp = (day - otherDate.day); 
     } 
    } 
    return cmp; 
} 

Se non si è soddisfatti del risultato di equals(), si sta utilizzando i metodi predefiniti di LocalDate.

Si noti che tutti coloro metodo utilizza il metodo compareTo0() e basta controllare il valore cmp. se stai ancora ottenendo risultati strani (che non dovresti), allegare un esempio di input e output

+1

_ "darò il confronto degli oggetti" _ Trovo questo difficile da capire, cosa intendi con questo? In che cosa 'LocalData.equals' è diverso da' LocalDate.isEqual'? La tua risposta potrebbe usare un po 'più di spiegazione. – Lii

+0

mi dispiace che la modifica di @itachiUchiha non sia corretta – royB

+0

@Lii è possibile controllare la mia risposta aggiornata. ho rimosso la precedente modifica e ho aggiunto ulteriori informazioni – royB

Problemi correlati