java - 如何按日期对不同格式的游标或 sqlite 数据库进行排序?
问题描述
我正在尝试通过增加列表视图上的日期来对我的数据进行排序。根据用户的设置,保存的日期如下
DD.MM.YYYY
或MMM DD, YYYY
。现在订单设置为“日期 ASC”。
Cursor cursor = getContentResolver().query(EventEntry.CONTENT_URI,
projection, null, null, "date ASC");
因此,当我按升序排序时,26.07.2019 将显示在 31.03.2019 上方,尽管较晚。在美国格式中,排序无论如何都不起作用,例如 Apr 总是显示在任何其他月份的上方。我想支持这两种日期格式以获得更好的用户体验。
有没有办法以正确的顺序对游标或数据库中的日期进行排序?
解决方案
这会将参数中的日期格式更改YYYYMMDD
为order by
:
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
或将日期存储为整数(epoch milis)。
推荐阅读
- c# - Convert c# code with inline delegate to vb.net
- python - 使用对数刻度注释 seaborn distplot 会引发错误
- php - 为 AngularJS 抓取 PHP 和 jQuery Ajax - 初学者
- php - JSON数据转入php
- python - Python 3.6 asyncio - 从未检索到任务异常 - 任务的产量不好:200
- scala - 编译 scala play 应用程序时出错
- python - 如何使用 groupby 函数计算数据集的百分比
- javascript - JavaScript:如果参数被定义,函数搜索参数出现在数组中的位置的索引
- react-native - 你如何为 ios 使用 zIndex 或海拔
- r - 如何在 R 中创建具有多列 ID 代码和日期的虚拟变量?