将 sqlite 数据库日期字符串 "yyyy-MM-dd" 与今天 android 中的字符串进行比较?

Compaire sqlite database date string "yyyy-MM-dd" with todays string in android?

我在数据库中将 from_dateto_date 列存储为 sdf (yyyy-MM-DD)。我想检查今天的日期是否在这两个日期之间。

我的查询是:

String where = Alarm.COL_TIME+" = "+"'"+time+"' AND Date(from_date) <= Date ('"+ today +"') AND Date(to_date) >= Date ('"+ today +"')";

但它什么也没显示。 请忽略时间

如何做到这一点??

以下代码将以 yyyy-MM-dd 格式将今天的日期存储在您的 today 变量中:

// Imports
import java.text.SimpleDateFormat;
import java.util.Date;

// Above your "String where = Alarm..." assignment
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());

假设您有一个字符串作为日期,就像您说的那样 "yyyy-MM-dd"。让我们说它是“2014-12-03”。然后,将其解析为长值:

   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd",Locale.getDefault());

   String todayString = "2014-12-03";
   String fromString = "2014-12-01";
   String toString = "2014-12-05";

   Date todayDate = format.parse(todayString);
   Long today = todayDate.getTime();

   Date fromDate = format.parse(fromString);
   Long from = fromDate.getTime();

   Date toDate = format.parse(toString);
   Long to = toDate.getTime();

有了这个你就拥有了所有三个长值并且可以比较:

   if(today>fromDate&&today<toDate){
     //then today is between these days
   }