比较Java中的日期 - 只有年,月和日

kin*_*ong 10 java date

我想与date对象进行比较.只有一个问题是我想比较几天,几个月和几年.

/* toString output
mydate 2013-08-23
current date: Thu Aug 23 14:15:34 CEST 2013
Run Code Online (Sandbox Code Playgroud)

如果我比较几天(23-08-2013)日期是相等的,如果我使用.after().之前()方法日期是不同的.

是否有简单比较日,月,年的Java方法或者我必须比较每个值?

piy*_*ush 19

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
boolean sameDay = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
              cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR);
Run Code Online (Sandbox Code Playgroud)

这将完美地工作.........


Eri*_*ein 3

不幸的是,核心 Java API 中的日期支持非常弱。您可以用来Calendar从日期中删除时间/时区信息。您可能想编写一个单独的方法来做到这一点。您还可以使用 Joda API 来支持日期/时间,因为它比 Java 的好得多。