2014-03-13 2 views

Antwort

10

Wenn Sie nur den Datumsteil vergleichen wollen, können Sie es wie so tun:

LocalDate startDate = new LocalDate(2014, 1, 2); 
LocalDateTime startDateTime = new LocalDateTime(2014, 1, 2, 14, 0); 
LocalDate forCompare = startDateTime.toLocalDate(); 
System.out.println("equal dates: " + forCompare.equals(startDate)); 
// equal dates: true 

docs

+3

Beachten Sie, dass 'equals()' auch die zugrunde liegenden Chronologien und nicht nur die Feldwerte vergleicht, sonst ist die gegebene Lösung in Ordnung. Am besten ist nur die Verwendung von ISOChronology. –

+0

'equals()' funktioniert nicht. –

+0

@MenoHochschild bitte Code anzeigen. –

3
LocalDate startDate = new LocalDate(2014,1,2); 

LocalDateTime startDateTime = new LocalDateTime(2014,1,2,00,0); 

System.out.println(startDate.toDate()); 
System.out.println(startDateTime.toDate()); 


if(startDate.toDate().compareTo((startDateTime.toDate()))==0){ 
System.out.println("equal");  
} 

der Ausgang sein:

Do 2. Januar 00: 00:00 IST 2014

Do. Jan. 02 00:00:00 IST 2014

gleich

+1

@Klausos Klausos. probiere das hier aus ... – Nirmal

+0

Jede vernünftige Implementierung von 'equals' für einen Fall wie diesen würde wahrscheinlich den Gleichheitsvergleich mit 0 innerhalb davon machen. –

Verwandte Themen