1

現在の日付とデータベースから取得した日付を比較する際にいくつかの問題に直面しています。データベースから日付を取得し、このような日付変数に格納しました

String due_date_task = cursor.getString(cursor.getColumnIndex(dueDateOfTask));

SimpleDateFormat currentFormater = new SimpleDateFormat("dd/MM/yyyy");
Date date1 = currentFormater.parse(due_date_task);

今、私が欲しいのは、DataBase から取得した日付が CurrentDate と同等かどうかを確認することです。

Calendar currentDate = Calendar.getInstance();
Date date2 = currentDate.getTime();

if(date1.equals(date2)) 

System.out.println("今日のタスク");

このように確認したいだけです。よろしくお願いします

4

3 に答える 3

1

この機能を使用できます:

private boolean compareDates(Calendar objCal1, Calendar objCal2) {

  return ((objCal1.get(Calendar.YEAR) == objCal2.get(Calendar.YEAR))
    && (objCal1.get(Calendar.DAY_OF_YEAR) == objCal2.get(Calendar.DAY_OF_YEAR)));
}

カレンダー オブジェクトの作成:

Calendar objCal1 = new GregorianCalendar().setTime(date);
Calendar objCal2 = new GregorianCalendar().setTime(date1);
于 2012-04-04T10:04:15.047 に答える
1

ミリ秒を含む完全一致には、getTimeを使用します。

if(date.getTime() == date1.getTime()){
   //do something
} 
于 2012-04-04T10:04:50.707 に答える
0

この方法で現在の日付を取得してみてください。

Calendar calCurr = Calendar.getInstance();
Log.i("Time in mili of Current - Normal", ""+calCurr.getTimeInMillis()); // see what it gives? dont know why?
Date date = new Date();
calCurr.set(date.getYear()+1900, date.getMonth()+1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());// so added one month to it
Log.i("Time in mili of Current - after update", ""+calCurr.getTimeInMillis()); // now get correct

データベース値の Calendar オブジェクトを作成し、

String due_date_task = cursor.getString(cursor.getColumnIndex(dueDateOfTask));      

SimpleDateFormat currentFormater = new SimpleDateFormat("dd/MM/yyyy");      
Date date = currentFormater.parse(due_date_task);     
Calendar start = Calendar.getInstance();
start.set(date.getYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());

そして今、両方の Calendar オブジェクトを比較します

if(calCurr.equals(start))
于 2012-04-04T10:12:37.303 に答える