在 Kotlin 中对 JSON 数组中的日期及其值进行排序的有效方法

Jos*_*eph 1 sorting android android-date kotlin

在使用 Kotlin 的 Android 应用程序开发中,这将是对 JSON 数组进行排序的有效方法,该数组将日期作为属性值的对象。

我想按日期对我的回复进行排序并选择最新创建的项目。例如,我的列表响应是

[
    {
        name : "Joseph"
        enrolled_at : "2019-12-17 14:16:51"
    },
    {
        name : "Infant"
        enrolled_at : "2019-12-20 10:06:22"
    },
    {
        name : "Raj"
        enrolled_at : "2020-02-10 07:19:16"
    }
]
Run Code Online (Sandbox Code Playgroud)

我想用“enrolled_at”属性日期对此进行排序,以获取最近注册的项目。最初的反应很大,所以我在这里无法得到真正的反应。

使用 Kotlin 对日期进行排序的有效方法是什么?尝试使用Kotlin 中的sortedWith和其他集合。寻找建议。

小智 8

首先,您需要创建将该字符串转换为日期的方法,以便您的数组可排序。

假设您将该 JSON 转换为以下类型的用户列表:

data class User(val name: String, val enrolled_at: String)
Run Code Online (Sandbox Code Playgroud)

使用 Kotlin 中创建扩展的功能,您可以创建以下 String 方法扩展:

fun String.toDate(): Date{
   return SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).parse(this)
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过执行以下操作按日期升序对用户列表进行排序:

users.sortedBy { it.enrolled_at.toDate() }
Run Code Online (Sandbox Code Playgroud)