首页 > 解决方案 > 无法使用android studio在java中对日期进行排序

问题描述

我想根据他们的最新日期对我的数组进行排序。我正在从文本文件中检索日期作为字符串。我的文本文件如下:

title:High Five
date:02-04-2019
title:Roly Poly
date:04-07-2019
title:Barney
date:11-01-2016

我想按如下方式显示它们:

title:Roly Poly
date:04-07-2019
title:High Five
date:02-04-2019
title:Barney
date:11-01-2016

我使用了以下方法:

public class mydateCompare implements Comparator<Cartoon>
{

    @Override
    public int compare(Cartoon o1, Cartoon o2) {

        SimpleDateFormat dateFormat=new SimpleDateFormat("dd-mm-yyyy");
        String dateinString = o1.getDate();
        String dateinS = o2.getDate();

        try {
            Date date = dateFormat.parse(dateinString);
            Date dt = dateFormat.parse(dateinS);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return dateinString.compareTo(dateinS);

    }
}

我上述方法的输出是:

title:High Five
date:02-04-2019
title:Roly Poly
date:04-07-2019
title:Barney
date:11-01-2016

你们能告诉我我需要做什么才能得到我想要的输出吗?谢谢你。

标签: javaandroidtext

解决方案


复制下面的类,

internal class CartoonsSorter : Comparator<Cartoon> {

        private val dateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault())

        override fun compare(o1: Cartoon, o2: Cartoon): Int {
            var firstObjDate = Date()
            var secondObjDate = Date()
            try {
                firstObjDate = dateFormat.parse(o1.date) ?: Date()
                secondObjDate = dateFormat.parse(o2.date) ?: Date()

            } catch (e: ParseException) {
                e.printStackTrace()
            }

            return secondObjDate.compareTo(firstObjDate)
        }
    }

按以下方式使用它,

Collections.sort(yourArray, CartoonsSorter())

上述输出:

排序前:

[
  {
    "date": "02-04-2019",
    "title": "High Five"
  },
  {
    "date": "04-07-2019",
    "title": "Roly Poly"
  },
  {
    "date": "11-01-2016",
    "title": "Barney"
  }
]

排序后:

[
  {
    "date": "04-07-2019",
    "title": "Roly Poly"
  },
  {
    "date": "02-04-2019",
    "title": "High Five"
  },
  {
    "date": "11-01-2016",
    "title": "Barney"
  }
]

推荐阅读