【发布时间】:2018-04-10 09:39:03
【问题描述】:
我想获取给定日期时间的月份的第一个日期时间,如下所示:对于日期 19-04-2018 19:00:00 (dd-MM-yyyy HH:mm:ss),它应该是 01-04-2018 00:00:00。
我试过下面的代码,但它给出了空列表。
startDate 可能包含类似01-04-2018 00:00:00 的值。
List<scPosR> scPosRListPerStoreAndTimeStamp = spst.stream().filter(
scPosR -> Timestamp.valueOf(scPosR.getTransactionDate()
.toLocalDateTime()
.toLocalDate()
.withDayOfMonth(1)
.atStartOfDay())
.equals(startDate))
.collect(Collectors.toList());
有人可以建议我这样做吗?
【问题讨论】:
-
您确定您的列表中包含一个与
startDate值匹配的对象吗?对我来说localDate.withDayOfMonth(1).atStartOfDay()返回预期值 -
startDate的类型是什么?如果不是Timestamp,equals将返回 false。
标签: java arraylist java-stream java-time