0

デフォルトが現在の日付であるdate(type 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)

{..}これは私のコードですが、機能しません

4

2 に答える 2

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 に答える
0

まず第一に、質問の著者は次のことを意味しているようです。

彼はエポックからミリ秒をデータベースに保存しており、その値に対応するカレンダーの日付を現在の日付と比較する必要があります。

それを解決するには、次のコードを使用することをお勧めします。

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

    dateFromDB.setTimeInMillis(s);

Calendar.get(int field)を使用して rightNows と DateFromDB の年、月、日のフィールドを比較できるようになりました。

可能な別の実装があります - ミリ秒から日に変換するための独自の関数を作成します (例: Julian Dayを使用)

また、次の点にも注意してください。DB の時間と現在の時間はタイムゾーンが異なる場合があるため、追加の修正が必要になる場合があります。

于 2012-11-07T07:47:48.947 に答える