This question already has answers here:
Sort months ( with strings ) algorithm
                                
                                    (10个回答)
                                
                        
                                6年前关闭。
            
                    
我想对月份名称进行排序。我尝试了以下方法:

import java.util.SortedSet;
import java.util.TreeSet;

public class SortingMonth {

    public static void main(String[] args) {
        SortedSet<String> monthSet = new TreeSet<String>();
        monthSet.add("Feb");
        monthSet.add("Jan");
        monthSet.add("Mar");
        monthSet.add("Dec");
        monthSet.add("Aug");

        for(String value:monthSet){
            System.out.println(value);
        }
    }
}


输出:

Aug
Dec
Feb
Jan
Mar


但是我想要按以下顺序输出:

Jan
Feb
Mar
Aug
Dec

最佳答案

可能是您可以尝试以下不同方法。 Best efficient way to sort Months and Year in Java

List<String> abc = new ArrayList<String>();
    List<Date> xyz = new ArrayList<Date>();

    abc.add("JAN-2010");
    abc.add("JAN-2011");
    abc.add("APR-2013");
    abc.add("NOV-2009");

    try {

        for (String abc1 : abc) {

            Date date;

            date = new SimpleDateFormat("MMM-yyyy", Locale.ENGLISH)
                    .parse(abc1);
            xyz.add(date);

        }

        Collections.sort(xyz, new Comparator<Date>() {

            public int compare(Date arg0, Date arg1) {
                // return arg0.getDate().compareTo(o2.getDate());
                return arg0.compareTo(arg1);
            }
        });

        for (Date date1 : xyz) {
            System.out.println("Sorted : " + date1);
        }

    } catch (ParseException e) {

        e.printStackTrace();

    }
}

08-28 23:04