android 按领域中的日期排序

s3fp2yjn  于 2023-02-02  发布在  Android
关注(0)|答案(2)|浏览(149)

我想按日期对信息进行排序。例如,数据格式为:2017年11月10日。我正在尝试这样的事情:

RealmResults<ResultFavorite> resultFavoritesReleaseDate = realm.where(ResultFavorite.class).sort("releaseDate", Sort.DESCENDING).findAll();

但它不起作用,查询中的fieldName是一个String。

fwzugrvs

fwzugrvs1#

当你说“它不起作用”时,我假设实际上记录是按字符串降序而不是日期顺序排序的。
我认为有两种选择。
首先,Date是受支持的Realm字段类型,因此您可以将字段更改为该类型(或可选的:Date?如果使用Kotlin)。您的查询应该可以正常工作。这将是首选的解决方案。
第二个选项远没有那么优雅,但在无法更改字段类型时是必需的。在这种情况下,您需要查询所有对象,然后将结果类型Map到数组,并使用java或Kotlin排序例程进行排序。排序标准是从字符串到日期的转换。这在内存使用方面也是缓慢且低效的。

2wnc66cl

2wnc66cl2#

我使用不同的方法从领域中获取数据,领域以不同的方式对结果进行排序。我的情况可能与问题中的确切情况无关,但仍然可以帮助其他人进行排序。排序是一个函数,您必须定义排序字段和降序/升序的true/false。

const realm = await RealmSetup.getMyInstance(parameter);
const resultList = realm.objects<MyType>('schemaName').sorted('createdDate', true);
return resultList as unknown as MyType[];

相关问题