排序所以,我有一個看似不那麼聰明的問題,但在這裏不用,日期時間SQLite中
10:00pm to 11:00pm
在上面的格式從服務器返回的日期時間。
我想能夠對其進行排序,但使用ORDER BY ASC
似乎不起作用。它適用於iPhone,但不適用於Android。
是否因爲SQLite數據庫版本?
如何排序時間?
排序所以,我有一個看似不那麼聰明的問題,但在這裏不用,日期時間SQLite中
10:00pm to 11:00pm
在上面的格式從服務器返回的日期時間。
我想能夠對其進行排序,但使用ORDER BY ASC
似乎不起作用。它適用於iPhone,但不適用於Android。
是否因爲SQLite數據庫版本?
如何排序時間?
顯示的內容不是日期時間,而是時間間隔。
該值是一個字符串,字符串按字典順序進行比較。 爲了確保您的字符串正確排序,所有字段必須始終具有相同的長度(如果不是,9:00
將被排序後10:00
;使用09:00
代替)。 此外,AM
/PM
後綴在一天中的第一個小時內不能正確排序;改用普通的24小時制。
也許它是因爲SQLite,但嘗試存儲秒的時間,如果你排序sec它將工作。 EX 1:05 = 65秒。 編輯:如果你想顯示在查看時間,只需將其轉換回H:M:S 我認爲這將是對你最簡單的方法;)
你可以做一件事之前,在轉換數據庫存儲日期變爲milis。然後你可以從中得到排序的列表。然後獲得排序結果後,您可以再次將它們轉換爲日期。
對於轉換,您可以使用SimpleDateFormat類。示例代碼可以在doc中找到,或者您可以看到很多示例
您可以通過使用時間戳整理日期:像: 「YY MM DD HH:MM一」 //這裏你的情況HH:MMA
轉換您的時間爲簡單的日期格式如下圖所示:
DateFormat simpleDateFordate = new SimpleDateFormat("yy MM dd");
Calendar calender = Calendar.getInstance();
String date = simpleDateFordate.format(calender.getTime());
System.out.println("date>>>>" + date);
String time = "10:00pm";
String stringDate = date + " " + time;
DateFormat dateFormatdatewithTime = new SimpleDateFormat(
"yy MM dd hh:mma");
Date dateinMili;
try {
dateinMili = dateFormatdatewithTime.parse(stringDate);
String dateFinal = dateFormatdatewithTime.format(dateinMili.getTime());
System.out.println("Final Date time>>>>"+dateFinal);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
將Mili Seconds存儲到您的數據庫中,或者您可以將dateinSimpleFormat Date存儲到數據庫中。
這一切後,你可以直接像簡單的查詢,對其進行排序: SELECT * FROM表名ORDER BY Column_Date ASC