2014-03-13 39 views

回答

10

如果你只是想比较的日期部分,你可以像这样:

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

请记住,equals()也会比较底层的年表,而不仅仅是字段值,否则给定的解决方案是好的。最好的只是使用ISOChronology。 –

+0

'equals()'不起作用。 –

+0

@MenoHochschild请显示一些代码。 –

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");  
} 

输出将是:

周四00年1月2日: 00:00 IST 2014

Thu Jan 02 00:00:00 IST 2014

等于

+1

@Klausos Klausos。试试这个...... – Nirmal

+0

对于这样的情况,任何合理的'equals'实现都可能与它内部的0进行等式比较。 –