将当前系统日期与android数据库中存储的datetime类型的日期进行比较

将当前系统日期与android数据库中存储的datetime类型的日期进行比较,android,database,date,time,Android,Database,Date,Time,我创建了一个表,其中包含一个日期字段(键入datetime),默认为当前日期,当用户插入数据时,此时间自动设置,我想将当前系统日期与此字段进行比较,我该怎么办 public static long s; String query = "SELECT Cart_Date from Tbl_Cart where Cart_ID="+lastId+" "; Cursor c = db.rawQuery(query, null); if (c != nul

我创建了一个表,其中包含一个日期字段(键入datetime),默认为当前日期,当用户插入数据时,此时间自动设置,我想将当前系统日期与此字段进行比较,我该怎么办

public static long s;

 String query = "SELECT Cart_Date from Tbl_Cart where Cart_ID="+lastId+" ";

          Cursor c = db.rawQuery(query, null);
           if (c != null && c.moveToFirst() ) {
               s = c.getLong(0);
}
 if( System.getTimeInMillis()!=s)
{ .. }
这是我的代码,但不起作用。首先,问题的作者的意思是:

他正在数据库中存储epoch的ms,需要将对应于该值的日历日期与当前日期进行比较

要解决此问题,我建议使用以下代码:

    // get current date    
    final Calendar rightNow = Calendar.getInstance();
    final Calendar dateFromDB = Calendar.getInstance();

    dateFromDB.setTimeInMillis(s);
现在,您可以使用比较rightNows和DateFromDB year、month和day字段

还有另一种可能的实现——编写自己的函数,将ms转换为days(例如使用)

此外,您应该记住以下几点:以DB为单位的时间和当前时间可能有不同的时区,因此您可能需要对此进行额外的更正

我找到了

 String query = "SELECT Cart_Date from Tbl_Cart where Cart_ID="+lastId+" ";
          Cursor c = db.rawQuery(query, null);
           if (c != null && c.moveToFirst() ) {
               s = c.getLong(0);

           SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
           java.util.Date date = new java.util.Date();
           String datetime = dateFormat.format(date);

         if(!(datetime.equals(s)))
{

}

你需要展示的不仅仅是这些。if(System.getTimeInMillis()!=s)将始终为真,除非您非常努力地做一些非常奇怪的事情。哪个部分“不起作用”?line if(System.getTimeInMillis()!=s)始终为真!!!!!