2010-07-30 77 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