郑永安
2023-06-19 f65443d8abeaedc9d102324565e8368e7c9d90c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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;
    }
 
}