17

我正在使用 Java 中的 compareTo 方法来尝试检查某个日期是否大于或等于另一个日期之后的 24 小时。

如何确定将日期与哪个整数进行比较?

4

6 回答 6

15

使用Calendar类。如果您已经有一个Date对象,您仍然可以使用Calendar

Date aDate = . . .
Calendar today = Calendar.getInstance();
today.setTime(aDate);
Calendar tomorrow = Calendar.getInstance();
tomorrow.setTime(aDate);
tomorrow.add(Calendar.DAY, 1);
Date tomorrowDate = tomorrow.getTime(); // if you need a Date object
于 2012-06-21T21:04:50.900 回答
12

答案取决于您想要实现的目标。

一种方法,可能是以毫秒为单位检查差异。以毫秒为单位的 24 小时可以通过以下方式计算

24  *  60  *  60  *  1000   =  86400000
h      min    sec    millis  

(在代码中,您还可以编写TimeUnit.HOURS.toMillis(24)哪个 IMO 更具描述性)

所以现在你可以检查两个日期之间的差异(以毫秒表示)是否大于 86400000。

于 2012-06-21T21:06:12.607 回答
11
于 2014-03-25T04:07:17.757 回答
2

这将帮助您检查您的日期是否是昨天

public static final long ONE_MINUTE = 60 * 1000;
public static final long ONE_HOUR = 60 * ONE_MINUTE;
public static final long ONE_DAY = 24 * ONE_HOUR;

public static boolean isYesterday(Date d) {
    return DateUtils.isToday(d.getTime() + ONE_DAY);
} 
于 2015-04-16T17:24:37.327 回答
2

在您的活动 OnCreate

    //Get current date - yymmdd increases only
    SimpleDateFormat formatter = new SimpleDateFormat("yyMMdd");
    Date now = new Date();
    int nowTime= Integer.parseInt(formatter.format(now));

    //Get last login date - stored in db
    int lastLogin= dbManager.getLastLoginDate();

    //Check if next day
    if(nowTime> lastLogin){

        //Do your stuff
        //Update last login date
        dbManager.saveLoginDate(nowTime);
    }
于 2016-11-03T12:24:44.693 回答
1

查找日期之间的增量:简而言之,

long endL = end.getTimeInMillis() + end.getTimeZone().getOffset( end.getTimeInMillis() ); 
long startL = this.getTimeInMillis() + this.getTimeZone().getOffset(this.getTimeInMillis());
return (endL - startL) / MILLISECS_PER_DAY;

详细地,

http://user.xmission.com/~goodhill/dates/deltaDates.html

于 2012-06-21T21:05:42.963 回答