package com.gk.firework.Domain.Vo;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Collections;
|
import java.util.Date;
|
import java.util.List;
|
import java.lang.reflect.Field;
|
import java.util.Comparator;
|
|
|
public class SortTime {
|
public List<?> sortByInt(List<?> list, final String param ,Byte order){
|
//自定义Comparator对象,自定义排序
|
Comparator c = new Comparator() {
|
@Override
|
public int compare(Object o1, Object o2) {
|
try {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
Field field1 = o1.getClass().getDeclaredField(param);
|
Field field2 = o2.getClass().getDeclaredField(param);
|
field1.setAccessible(true);
|
field2.setAccessible(true);
|
Date date1 = null;
|
Date date2 = null;
|
try {
|
date1 = (Date)field1.get(o1);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
try {
|
date2 = (Date) field2.get(o2);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
|
if((int)date1.getTime() < (int) date2.getTime()){
|
return 1;
|
}else if((int)date1.getTime() > (int) date2.getTime()){
|
return -1;
|
}else {
|
return 0;
|
}
|
//注意!!返回值必须是一对相反数,否则无效。jdk1.7以后就是这样。
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return 1;
|
}
|
};
|
if(order == 1){
|
Collections.sort(list, c);
|
}else {
|
Collections.sort(list, c.reversed());
|
}
|
|
return list;
|
}
|
|
}
|