java时间补0_Java查询近一月时间补0,mysql,oracle通用

JDK1.6

工具类

1.传入两个时候段,开始时间,结束时间。获取近一月的日期。

public static List findDates(String dStart, String dEnd){

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

List dates = new ArrayList();

try {

Date startDate = sdf.parse(dStart);

Date endDate = sdf.parse(dEnd);

dates.add(sdf.format(startDate));

Calendar calBegin = Calendar.getInstance();

// 使用给定的 Date 设置此 Calendar 的时间

calBegin.setTime(startDate);

Calendar calEnd = Calendar.getInstance();

// 使用给定的 Date 设置此 Calendar 的时间

calEnd.setTime(endDate);

// 测试此日期是否在指定日期之后

while (endDate.after(calBegin.getTime())) {

// 根据日历的规则,为给定的日历字段添加或减去指定的时间量

calBegin.add(Calendar.DAY_OF_MONTH, 1);

dates.add(sdf.format(calBegin.getTime()));

}

}catch (Exception e){

e.printStackTrace();

}

return dates;

}

ab75ef6b37fecbd6b42bd91839e6d5bc.png

2.比较两个集合进行排序

调用工具类 重要获取近一个月的时间段

List dates = DateUtil.findDates(开始时间,结束时间);

假如你的业务集合为List list;

返回 ist = compareTime(list2, dates);

比较方法

public List compareTime(List nearlyAMonth,List dates){

final List list=new ArrayList();

for(NearlyAMonth mm: nearlyAMonth){

list.add(mm.getTime());

};

for(String date: dates){

if(!list.contains(date)){

NearlyAMonth near = new NearlyAMonth();

near.setTime(date);

nearlyAMonth.add(near);

}

}

Collections.sort(nearlyAMonth, new Comparator() {

@Override

public int compare(NearlyAMonth o1, NearlyAMonth o2) {

if(o1.getTime().compareTo(o2.getTime())==0){

return -1;

}

return o1.getTime().compareTo(o2.getTime());

}

});

return nearlyAMonth;

成功实例

e7882d5ecf4c69d937ac7051ab831611.png

注:JDK1.8中可以用特性 比较添加

public List compareTime(List nearlyAMonth,List dates){

List list=new ArrayList<>();

nearlyAMonth.forEach(item->list.add(item.getTime()));

dates.forEach(item->{

if(!list.contains(item)){

NearlyAMonth nearly= new NearlyAMonth();

nearly.setTime(item);

nearlyAMonth.add(statistics);

}

});

Collections.sort(coStatistics, new Comparator() {

@Override

public int compare(CoStatistics o1, CoStatistics o2) {

if(o1.getTime().compareTo(o2.getTime())==0){

return -1;

}

return o1.getTime().compareTo(o2.getTime());

}

});

return nearlyAMonth;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值