如何比较java日期中的那一天?

Tor*_*ups 4 java date

我想在昨天和今天之间做一个简单的日期比较

if (yesterday.before(today)) {
 ...
}
Run Code Online (Sandbox Code Playgroud)

问题是,使用before方法,即使只有几秒钟的差异,我也会评估为真.我怎么可以只比较一天(因为我只想将它评估为真如果它是前一天(应该忽略分钟/秒)

先感谢您

Pra*_*obo 12

使用DateUtils -

if (!DateUtils.isSameDay(yesterday, today) && (yesterday.before(today)) {
   //...
}
Run Code Online (Sandbox Code Playgroud)

编辑:它也可以在没有DateUtils的情况下完成.看到这个帖子.


s10*_*6mo 5

如果您不想使用第三方库,请实现如下方法:

public boolean before(Calendar yesterday, Calendar today) {
    if(yesterday == today) return false;
    if(yesterday == null || today == null) return false;
    return  yesterday.get(Calendar.YEAR) < today.get(Calendar.YEAR) ? true : 
        yesterday.get(Calendar.YEAR) == today.get(Calendar.YEAR) && yesterday.get(Calendar.DAY_OF_YEAR) < today.get(Calendar.DAY_OF_YEAR);
}
Run Code Online (Sandbox Code Playgroud)