使用日期(字符串格式)对arraylist进行排序

时间:2015-04-02 05:30:34

标签: java

我有arraylist,文档号为No,创建日期,日期格式为String。我必须使用最新创建的日期对arrayList进行排序。提前谢谢。

日期(字符串)格式:2015年1月1日

4 个答案:

答案 0 :(得分:0)

有很多StackOverflow答案可以帮助您。例如:

我还建议您调查Collections.sort(并实施Comparator)。

答案 1 :(得分:0)

您必须使用Collections.sort()方法并将列表作为参数传递。列表将根据其元素的自然顺序排序。您可以在此处获得更多信息:http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html

答案 2 :(得分:0)

public static void main(String[] args) {
    List dateList = new ArrayList();

    dateList.add(convertToString("1/1/2015"));
    dateList.add(convertToString("2/1/2015"));
    dateList.add(convertToString("1/2/2015"));
    dateList.add(convertToString("3/1/2015"));
    dateList.add(convertToString("1/4/2015"));
    dateList.add(convertToString("4/1/2015"));
    dateList.add(convertToString("2/2/2015"));
    dateList.add(convertToString("2/4/2015"));
    dateList.add(convertToString("4/4/2015"));

    Collections.sort(dateList);
    System.out.println(dateList);

}

public static String convertToString(String dateInString){

    SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
    Date date = null;
    try {

        date = formatter.parse(dateInString);
    } catch (ParseException e) {
        e.printStackTrace();
    }

    return formatter.format(date);
}

请看一下上面的代码,我认为它应该可以解决您的问题。

答案 3 :(得分:0)

这是使用apache-commons DateUtils实现它的一种非常简单的方法。

    List<String> dates = new ArrayList<String>();
    dates.add("3/1/2015");
    dates.add("1/4/2015");
    dates.add("1/1/2015");
    final String[] formats = new String[] { "dd/MM/yyyy" };
    Collections.sort(dates, new Comparator<String>() {

        @Override
        public int compare(String d1, String d2) {
            try {
                Date date1 = DateUtils.parseDate(d1, formats);
                Date date2 = DateUtils.parseDate(d2, formats);
                return date1.compareTo(date2);
            } catch (ParseException e) {
                // do something to treat this error
                return 1;
            }
        }
    });