现实是:2021年10月24日09:52:35,祝大家节日快乐呐!
今天在项目过程中,遇到了个需求,需要对某个对象中的日期部分进行排序,也是解决了好久的一个问题,现在分享出来希望能帮助到大家。
按照开始日期进行从小到大排序
实体类:
@Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "ProjectVO对象", description = "项目表(project)") public class ProjectVO extends Project { private static final long serialVersionUID = 1L; //格式化日期 //开始时间 private String kaishiTime; //结束时间 private String jieshuTime; //project对象 private Project project; //年月日 private String riqi; }
排序的工具类:
package org.springblade.modules.hbv.util; import org.springblade.modules.hbv.vo.ProgrammeVO; import org.springblade.modules.hbv.vo.ProjectVO; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Comparator; import java.util.Date; /** * @author: muxiongxiong * @date: 2021年10月23日 下午 1:39 * 公众号:雄雄的小课堂 * 博客:https://blog.csdn.net/qq_34137397 * 个人站:http://www.穆雄雄.com * 个人站:http://www.muxiongxiong.cn * @Description: 类的描述 */ public class SortByDate implements Comparator { public int compare(Object o1, Object o2) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分"); Date begin = null; Date end = null; try { begin =sdf.parse(((ProjectVO)o1).getKaishiTime()); end = sdf.parse(((ProjectVO)o2).getKaishiTime()); } catch (ParseException e) { e.printStackTrace(); } if (begin.after(end)) { return 1; } else { return -1; } } }
调用排序工具类的部分代码展示:
//封装日期,让看好点儿 SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分"); for(String i : projectId){ //先对日期进行截取 ProjectVO projectVO = new ProjectVO(); Project project = projectService.getById(Integer.parseInt(i)); projectVO.setProject(project); Date begin = project.getBeginTime(); projectVO.setKaishiTime(format.format(begin)); Date end = project.getEndTime(); projectVO.setJieshuTime(format.format(end)); //需要重新封装在VO里面(一个方案对应多个项目) projectList.add(projectVO); } SortByDate sortByDate = new SortByDate(); //调用排序日期的方法 Collections.sort(projectList, sortByDate);
最后的projectList
就是已经排序好的集合啦。