日期排序!请各位帮助!
package testData;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class Cqiuzhu {
public static void main(String[] args) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<PersonOrderEntity> lists = new ArrayList<>();
PersonOrderEntity personOrderEntity1 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity2 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity3 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity4 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity5 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity6 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity7 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity8 = new PersonOrderEntity();
PersonOrderEntity personOrderEntity9 = new PersonOrderEntity();
String s1 = "2017-06-01 23:59:00";
Date parse1 = format.parse(s1);
String s2 = "2017-06-01 11:31:43";
Date parse2 = format.parse(s2);
String s3 = "2017-12-01 01:31:43";
Date parse3 = format.parse(s3);
String s4 = "2017-12-10 02:31:43";
Date parse4 = format.parse(s4);
String s5 = "2017-12-20 03:31:43";
Date parse5 = format.parse(s5);
String s6 = "2017-12-30 04:31:43";
Date parse6 = format.parse(s6);
String s7 = "2016-12-30 04:31:43";
Date parse7 = format.parse(s7);
String s8 = "2015-12-30 04:31:43";
Date parse8 = format.parse(s8);
String s9 = "2015-05-30 04:31:43";
Date parse9 = format.parse(s9);
personOrderEntity9.setCreatetime(parse9);
personOrderEntity6.setCreatetime(parse6);
personOrderEntity1.setCreatetime(parse1);
personOrderEntity7.setCreatetime(parse7);
personOrderEntity4.setCreatetime(parse4);
personOrderEntity2.setCreatetime(parse2);
personOrderEntity3.setCreatetime(parse3);
personOrderEntity5.setCreatetime(parse5);
personOrderEntity8.setCreatetime(parse8);
lists.add(personOrderEntity9);
lists.add(personOrderEntity3);
lists.add(personOrderEntity6);
lists.add(personOrderEntity2);
lists.add(personOrderEntity4);
lists.add(personOrderEntity5);
lists.add(personOrderEntity8);
lists.add(personOrderEntity7);
lists.add(personOrderEntity1);
Map<String, List<PersonOrderEntity>> test = test(lists);
Iterator<Map.Entry<String, List<PersonOrderEntity>>> it = test.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, List<PersonOrderEntity>> entry = it.next();
List<PersonOrderEntity> value = entry.getValue();
for (int i = 0; i <value.size() ; i++) {
Date createtime = value.get(i).getCreatetime();
String format1 = format.format(createtime);
System.out.println(format1);
}
System.out.println("key= " + entry.getKey());
}
}
public static Map<String,List<PersonOrderEntity>> test(List<PersonOrderEntity> lists) throws ParseException {
Map<String,List<PersonOrderEntity>> map = new HashMap<>();
List<PersonOrderEntity> list = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
Calendar thiscalendar = Calendar.getInstance();
int thisyear = thiscalendar.get(Calendar.YEAR);
ListSort(lists);
for (int i = 0; i <lists.size(); i++) {
Date time = lists.get(i).getCreatetime();
calendar.setTime(time);
int month = calendar.get(Calendar.MONTH) + 1;
int year = calendar.get(Calendar.YEAR);
for (int x = 1990 ;x<thisyear+1;x++){
if (x == year){
for (int j = 1; j <13 ; j++) {
if (month==j){
list.add(lists.get(i));
map.put(x+"-"+j,list);
}
}
}
}
}
return map;
}
private static void ListSort(List<PersonOrderEntity> list) {
Collections.sort(list, new Comparator<PersonOrderEntity>() {
@Override
public int compare(PersonOrderEntity o1, PersonOrderEntity o2) {
Date dt1 = o1.getCreatetime();
Date dt2 = o2.getCreatetime();
if (dt1.getTime() > dt2.getTime()) {
return -1;
} else if (dt1.getTime() < dt2.getTime()) {
return 1;
} else {
return 0;
}
}
});
}
public static class PersonOrderEntity{
private Date createtime;
public Date getCreatetime() {
return createtime;
}
public void setCreatetime(Date createtime) {
this.createtime = createtime;
}
}
}
最后输出的是这个。和我想的不太一样,我觉得应该是循环添加list的时候出错了,但是我没有找到错误的原因
2017-12-30 04:31:43
2017-12-20 03:31:43
2017-12-10 02:31:43
2017-12-01 01:31:43
2017-06-01 23:59:00
2017-06-01 11:31:43
2016-12-30 04:31:43
2015-12-30 04:31:43
2015-05-30 04:31:43
key= 2017-6
2017-12-30 04:31:43
2017-12-20 03:31:43
2017-12-10 02:31:43
2017-12-01 01:31:43
2017-06-01 23:59:00
2017-06-01 11:31:43
2016-12-30 04:31:43
2015-12-30 04:31:43
2015-05-30 04:31:43
key= 2016-12
2017-12-30 04:31:43
2017-12-20 03:31:43
2017-12-10 02:31:43
2017-12-01 01:31:43
2017-06-01 23:59:00
2017-06-01 11:31:43
2016-12-30 04:31:43
2015-12-30 04:31:43
2015-05-30 04:31:43
key= 2017-12
2017-12-30 04:31:43
2017-12-20 03:31:43
2017-12-10 02:31:43
2017-12-01 01:31:43
2017-06-01 23:59:00
2017-06-01 11:31:43
2016-12-30 04:31:43
2015-12-30 04:31:43
2015-05-30 04:31:43
key= 2015-12
2017-12-30 04:31:43
2017-12-20 03:31:43
2017-12-10 02:31:43
2017-12-01 01:31:43
2017-06-01 23:59:00
2017-06-01 11:31:43
2016-12-30 04:31:43
2015-12-30 04:31:43
2015-05-30 04:31:43
key= 2015-5
理想结果:
2017-12-30 04:31:43
2017-12-20 03:31:43
2017-12-10 02:31:43
2017-12-01 01:31:43
key= 2017-12
2017-06-01 23:59:00
2017-06-01 11:31:43
key= 2017-6
2016-12-30 04:31:43
key= 2016-12
2015-12-30 04:31:43
key= 2015-12
2015-05-30 04:31:43
key= 2015-5
本人是个新手,也是没辙了,真的很焦急,希望各位能赐教一下,不胜感激,100分奉上。。再次感谢