在 Realm 中按日期排序

Sort by Date in Realm

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

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

但是没用。 query中的fieldName是一个String。

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

我可以看到两个选项。

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

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