[英]How can I sort a cursor or sqlite database by date with different formats?
我正在嘗試通過增加列表視圖上的日期來對數據進行排序。 根據用戶的設置,保存的日期如下DD.MM.YYYY
或MMM DD, YYYY
。 現在,該訂單設置為“日期ASC”。
Cursor cursor = getContentResolver().query(EventEntry.CONTENT_URI,
projection, null, null, "date ASC");
所以當我按升序排序時,2019.07.2019將顯示在31.03.2019以上,盡管稍后。 在美國格式中,排序始終無法進行,例如,Apr始終顯示在任何其他月份的上方。 我想同時支持兩種日期格式,以提供更好的用戶體驗。
有什么方法可以以正確的順序對游標或數據庫中的日期進行排序?
這將按參數order by
將日期格式更改為YYYYMMDD
:
Cursor cursor = getContentResolver().query(
EventEntry.CONTENT_URI,
projection, null, null,
"substr(date, 7) || substr(date, 4, 2) || substr(date, 1, 2) ASC");
但是日期比較的問題仍然存在。
最好的辦法是將日期格式更改為YYYY-MM-DD
或將日期存儲為整數(紀元毫秒)。
在排序之前,請嘗試將日期轉換為時間戳。
Cursor cursor = getContentResolver().query(EventEntry.CONTENT_URI,
projection, null, null, "strftime('%s', date) ASC");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.