2010-07-30 111 views
2

我正在使用SQLITE数据库,并将日期存储为字符串。现在我想比较两个字符串作为日期。当我使用在Android中比较日期

String sqlQuery =“SELECT title,edate FROM lookup WHERE”+((Date)df.parse(“?”))。getTime()+“< =”+ date1.getTime(); c = db.rawQuery(sqlQuery,new String [] {“edate”});

它在运行时发生错误。请告诉我如何比较两个字符串作为日期。

谢谢 迪帕克

回答

1
String formatString = "dd-MM-yyyy"; // for example 
SimpleDateFormat df = new SimpleDateFormat(formatString); 
Date date1 = df.parse(string1); 
Date date2 = df.parse(string2); 
if (date1.before(date2)) { 
System.out.println("first date is earlier"); 
} 
+0

我无法创建SimpleDateFormat的对象。在这一行中,我收到一个运行时错误。 – Deepak 2010-07-30 09:03:48

+0

然后这将是有益的,如果你发布stacktrace – 2010-07-30 09:04:41

+0

我找到了解决方案.....把SimpleDateFormat放在try catch块 – Deepak 2010-07-30 11:14:38

2

您以轻松地比较想要的数字。我建议POSIX(或UNIX)时,其计算秒,因为在1970年左右

使用一个SQLite strftime函数的一个固定点到您的字符串转换为POSIX信号出现时间(退房%s选项)http://sqlite.org/lang_datefunc.html

然后使用Java函数获取纪元时间:http://download.oracle.com/javase/6/docs/api/java/util/Date.html#getTime()

"SELECT title, edate FROM lookup WHERE strftime(edate,'%s') < " + (Date1.getTime()/1000) 
+0

你应该为你的日期字符串使用ISO8601格式,阅读sqlite页面获取信息。 – Emyr 2010-07-30 07:58:59