首页 > 解决方案 > 在领域中按日期排序

问题描述

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

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

但它不起作用。查询中的 fieldName 是一个字符串。

标签: androidrealmrealm-mobile-platform

解决方案


当您说“它不起作用”时,我假设实际上记录排序的,但是按字符串降序而不是日期顺序。

我可以看到两个选项。

首先,Date是受支持的 Realm 字段类型,因此您可以将字段更改为该类型(或可选:Date?如果使用 Kotlin)。您的查询应该可以正常工作。这将是首选的解决方案。

第二个选项远没有那么优雅,但如果您无法更改字段类型,则将是必要的。在这种情况下,您需要查询所有对象,然后将结果类型映射到数组,并使用 java 或 Kotlin 排序例程进行排序。排序标准将基于从字符串到日期的转换。这在内存使用方面也是缓慢且低效的。


推荐阅读