我有对象,这就是它的描述吗?
public MemberSkills(User user, BasicSkills skills, Short level, Short status, LocalDateTime confirmDate, String comment) {
this.user = user;
this.skills = skills;
this.level = level;
this.status = status;
this.confirmDate = confirmDate;
this.comment = comment;
}
我想把MemberSkill从"confirmDate“过滤到"confirmDate”。我正在使用Java-8 &。我试过了,但没成功。
LocalDateTime fromdate = LocalDateTime.parse(memberSkillRequest.getFromDate(), formatter);
LocalDateTime toDate = LocalDateTime.parse(memberSkillRequest.getToDate(), formatter);
List<MemberSkills> filterMemberSkill = memberSkills.stream().filter(memberSkill -> memberSkill.getConfirmDate().isBefore(fromdate)).collect(Collectors.toList());
List<MemberSkills> listMemberSkill = filterMemberSkill.stream().filter(memberSkill -> memberSkill.getConfirmDate().isAfter(toDate)).collect(Collectors.toList());
从日期到现在从客户那里得到发送。
发布于 2019-01-17 10:24:56
可能是因为您正在对第一个筛选列表运行第二个筛选,该列表已经排除了第二个筛选器中的任何内容。你应该能做这样的事-
List<MemberSkills> filterMemberSkill = memberSkills.stream()
.filter(memberSkill -> memberSkill.getConfirmDate().isBefore(toDate)
&& memberSkill.getConfirmDate().isAfter(fromDate))
.collect(Collectors.toList());
发布于 2019-01-17 10:45:13
我猜你是这么想的:
List<MemberSkills> listMemberSkill = memberSkills.stream()
.filter(memberSkill -> ! memberSkill.getConfirmDate().isBefore(fromdate))
.filter(memberSkill -> memberSkill.getConfirmDate().isBefore(toDate))
.collect(Collectors.toList());
这为您提供了在从日期到日期之间的半开间隔内的确认日期的MemberSkills
对象。也就是说,日期必须是从日期开始或之后,严格地在日期之前。这是定义时间间隔的常用方法。在代码中,我使用“未在前面”来表示“on”或“on”。
https://stackoverflow.com/questions/54233620
复制相似问题