0

我创建一个带有日期字段(类型日期时间)的表,默认为当前日期,当用户插入数据时,此时间自动设置,我想将当前系统日期与此字段进行比较,我该怎么办?

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)

{ .. } 这是我的代码,但它不起作用

4

2 回答 2

0

首先,似乎问题的作者的意思如下:

他将时代的毫秒存储在数据库中,并且需要将对应于该值的日历日期与当前日期进行比较。

要解决它,我建议使用以下代码:

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

    dateFromDB.setTimeInMillis(s);

现在您可以使用Calendar.get(int field)比较 rightNows 和 DateFromDB 年、月和日字段。

还有另一种可能的实现 - 编写您自己的函数以从 ms 转换为 days (例如使用Julian Day

此外,您应该记住以下几点:数据库中的时间和当前时间可能有不同的时区,因此您可能需要对此进行额外的更正;

于 2012-11-07T07:47:48.947 回答
0

我找到了

 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)))
{

}
于 2012-11-07T11:03:17.630 回答