java - JAVA:过滤等于今天和之后的所有日期
问题描述
我正在尝试检查一种方法来检索等于今天和未来日期的所有日期
dates.stream().filter(d -> d.equals(new Date()) || d.after(new Date())).collect(Collectors.toList());
我需要一个更有效的解决方案。
解决方案
如果你真的需要使用Date
类(而不是推荐的java.time
库),你可以使用compareTo()
方法。
Date currentDate = new Date();
dates.stream()
.filter(date -> date.compareTo(currentDate) >= 0)
.collect(Collectors.toList());
Date
对象是按它们的long
值进行比较的,所以当我使用>=
它时,它的意思是,date
等于或晚于currentDate()
.
推荐阅读
- architecture - 在不同主机(文件系统)之间共享文件的最佳解决方案是什么
- vue.js - 安装 node-sass 时出错
- python - 使用按字长排序的字典翻译熊猫数据框
- ios - VSCode 无法识别 iOS 模拟器
- azure - 如何配置 docker-compose.yml 和 nginx conf 文件以读取外部驱动器?
- azure - Azure Pipeline FTP 文件模式未按预期工作
- python - os.environ.setdefault() 与 os.environ.putenv() 有什么区别
- javascript - 禁用捕获阶段传播时,Javascript 点击事件填充“目标”元素
- java - Java:在 JFrame 上的 WINDOW_CLOSING 的 dispatchEvent() 之后总是按下转义键
- android - 如何在 Retrofit android 中使用这个查询