前提,假设你使用一个数组来保存一组开始时间+结束时间,当然,你也可以用其它的数据结构。
基本思路,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(List<Date> dataList){
Collections.sort(dataList, new Comparator<Date>() {
@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按文件日期排序方法,下面以对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目录下文件按日期排序
}
}