如果不能仅将日期存储为Date对象,则需要定义一个自定义比较器(最终会将字符串隐式转换为Date对象,因此您也可以将它们存储为日期)。 您可以将这两个都定义为类中的字段:
private final static String dateFormat = "EEE MMM dd HH:mm:ss yyyy";
private final static Comparator dateComp = new Comparator() {
public int compare(String s1, String s2) {
Date d1 = null;
try {
d1 = new SimpleDateFormat( dateFormat,Locale.ENGLISH ).parse(s1);
} catch (ParseException e) {
//HANDLE THIS EXCEPTION
}
Date d2 = null;
try {
d2 = new SimpleDateFormat( dateFormat,Locale.ENGLISH ).parse(s2);
} catch (ParseException e) {
//HANDLE THIS EXCEPTION
}
return d1.compareTo(d2);
}
};
当然,您将必须有效地处理所需的try / catch块和潜在的解析异常。 此外,您必须确定输入日期字符串的格式。
这是使用上述比较器的示例:
String[] dateArray = new String[] {"Sat Dec 27 23:00:00 2014","Fri Dec 26 23:00:00 2014","Sun Dec 28 23:00:00 2014"};
List dateList = new ArrayList(Arrays.asList(dateArray));
Collections.sort(dateList, dateComp);
打印:
[Fri Dec 26 23:00:00 2014, Sat Dec 27 23:00:00 2014, Sun Dec 28 23:00:00 2014]