判断java中Date类型日期是否相同(忽略时、分、秒)的方法

1、需求:
1)下面两个时间进行比较:
Thu Jan 01 08:59:00 CST 1970
Thu Jan 01 08:48:00 CST 1970

=》比较结果:same

2)下面两个时间进行比较:
Thu Jan 01 08:00:00 CST 1970
Fri Jan 01 08:00:00 CST 2016

=>比较结果:diff

2、比较方法
这里就直接上代码了~列了五种只比较年月日,忽略时分秒的日期比较方式,以及各种方法的性能比较:

method 1:

method 2:

method 3:

DateUtils提供的方法源码如下:

其实上面的方法就是直接获取并比较了Calendar对象的纪元、年份和所在年份的第几天,这样来比较日期会比上面两种方法快。

method 4:

如果是Maven,需要添加下面的依赖:

method 5:

这个是Java8中Java.time提供的方法

通过性能比较,method 4和method 5的速度较其他几种方法显著提升,其中method 4较method 5快一点点,method 2最慢。所以如果程序中需要多次比较日期的话,建议用method 4和5。

发表回复