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

答えは、何を達成したいかによって異なります。

1 つの方法は、ミリ秒単位で違いを確認することです。ミリ秒単位の 24 時間は、

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

(コードでは、TimeUnit.HOURS.toMillis(24)どちらの IMO がよりわかりやすいかを記述することもできます)

これで、2 つの日付の差 (ミリ秒単位) が 86400000 より大きいかどうかを確認できます。

于 2012-06-21T21:06:12.607 に答える
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 に答える