JAVA 日期排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 日期排序相关的知识,希望对你有一定的参考价值。
将List类型数据排序,list中包开始日期periodFrom,结束日期periodTo,
日期格式例:
开始日期1:2018年3月18日,结束日期1:2018年3月22日
开始日期1:2018年3月20日,结束日期1:2018年3月25日
开始日期1:2018年3月13日,结束日期1:2018年3月20日
开始日期1:2018年3月12日,结束日期1:2018年3月18日
开始日期1:2018年3月19日,结束日期1:2018年3月19日
将这条数据以开始日期升序和结束日期升序排序.
前提,假设你使用一个数组来保存一组开始时间+结束时间,当然,你也可以用其它的数据结构。
基本思路,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;
);
大概写了下,具体你自己调调,还要注意异常处理。
参考技术A 日期都是string类型的吧,不带格式的日期比较才好一点的追问格式不是重点,主要是这个java逻辑怎么写
参考技术B 把这个list当作两个list来操作即开始日期list和结束日期list,日期排序比较简单将年月日进行格式化为String,把String用大于小于就能排序,排好以后将两个list addAll,需要代码可以追问追问请问,将日期排序之后,如何将开始日期和结束日期进行拼接,这段逻辑应该怎么实现
追答不好意思,刚才看错题设了,我重新解释,例如:A1---a1 B1---b1
这里的A1表示开始日期,a1表示结束日期,后面的类似.
若要以开始日期升序则只需要排序A1和B1,若要以结束日期升序排序只需要排序a1和b1
至于要拼接,下标即可
如有代码,可否截图在追答里面
java file.listFiles()按文件名称日期大小排序
1:按 文件名称 排序是什么规则呢?
windows的命名规则是,特殊字符(标点、符号)> 数字 > 字母顺序 > 汉字拼音。首字规则,首字相同看第二个,依次类推…
例如:全是数字的情况,100<200<300 ;111<121<131; 111<112<113;
2:按 文件日期 排序是什么规则呢?
按 文件日期 排序分两种:
(1)按文件创建日期排序(比较特殊)
(2)按文件修改日期排序
文件创建日期排序:也就字面意思啦。
文件修改日期排序:按照文件修改日期排序。
3:按 文件大小 排序是什么规则呢?
这个就比较简单了,按文件占用内存的大小排序。
规则,清楚了。那么,就进入正题。怎么让 file.listFiles() 返回的 File[ ] 是按照上面所说的规则排序呢?
1:按 文件名称 排序
打印的顺序是:按照递增的顺序排列
2:按 文件日期 排序
按 文件修改日期:递增
3:按 文件大小 排序
这样,打印的顺序是:按照递增的顺序排列
喜欢本文的朋友们,欢迎关注微信公众号“Java面试达人”,收看更多精彩内容
以上是关于JAVA 日期排序的主要内容,如果未能解决你的问题,请参考以下文章
Mongo - Java - 将所有文档排序字符串日期作为日期