我有一个包含对象的arraylists的arraylist
ArrayList<ArrayList<Object>> arrayLists
每个arraylist都包含一个日期时间字符串对象,我试图将日期时间字符串转换为日期并使用Comparator根据最新到最旧的日期重新排序列表,我已成功使用它来重新排序整数,但我似乎缺少重新排序日期时间字符串的东西,我已经在下面发布了我的代码
Collections.sort(arrayLists,
new Comparator<ArrayList<Object>>() {
@Override
public int compare(ArrayList<Object> a, ArrayList<Object> b) {
// TODO Auto-generated method stub
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date1, date2;
date1 = null;
date2 = null;
try {
date1 = dateFormat.parse((String) a.get(2));
date2 = dateFormat.parse((String) b.get(2));
Log.d("dateformat", date1.toString() + " " + date2.toString());
} catch (ParseException e) {
e.printStackTrace();
}
return Long.compare(date1.getTime(),date2.getTime());
//return ((Integer) a.get(0)).compareTo((Integer) b.get(0));
}
});
答案 0 :(得分:0)
我认为这里的问题是存储在object.get(2)
中的字符串值。您正在创建这样的解析器,
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
在这里,解析器会期望像2015-12-12T12:23:34
这样的字符串。如果您使用单引号传递字符串,例如2015-12-12'T'12:23:34
,则无效。
因此,请删除所有字符串中的单引号。