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; } }