本文目录一览:
JAVA 日期排序
前提,假设你使用一个数组来保存一组开始时间+结束时间,当然,你也可以用其它的数据结构。
基本思路,1转换为Date型,2使用Calendar类来比较两个日期,3 自己实现compare方法:
各部分的例子:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
Date startDate1 = simpleDateFormat.parse("2018年3月18日");
Date startDate2 = simpleDateFormat.parse("2018年3月12日");
private void sort(ListDate dataList){
Collections.sort(dataList, new ComparatorDate() {
@Override
public int compare(Date o1, Date o2) {
if(d1 != null d2 != null){
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(o1);
c2.setTime(o2);
return c1.After(c2);
}else{
return -1;
}
}
});
}
大概写了下,具体你自己调调,还要注意异常处理。
Java项目中有按时间排序(可正序,可倒叙),热度排序(可正序,可倒叙)该怎么做?
数据是存在数据库中,可以通过sql查询实现数据的排序
数据存储在redis中,通过zset实现排序
java实现日期排序问题
java按文件日期排序方法,下面以对C盘Java目录下文件进行按日期排序为例:
//引用java.io包里的所有类
import java.io.*;
import java.util.*;
public class FileOrder{
//按日期排序
public static void orderByDate(String fliePath) {
File file = new File(fliePath);
File[] fs = file.listFiles();
Arrays.sort(fs,new Comparator File(){
public int compare(File f1, File f2) {
long diff = f1.lastModified() - f2.lastModified();
if (diff 0)
return 1;
else if (diff == 0)
return 0;
else
return -1;
}
public boolean equals(Object obj) {
return true;
}
});
for (int i = fs.length-1; i -1; i--) {
System.out.println(fs[i].getName());
System.out.println(new Date(fs[i].lastModified()));
}
}
public static void main(String args[]){
orderByDate("c:/java"); //调用方法对c:/java目录下文件按日期排序
}
}