使用java1.8语言遍历一个list对象,其中有一个string类型的时间值,将这个值大于昨晚八点的过滤出来
时间: 2024-05-08 16:21:43 浏览: 44
假设list对象中的时间值为字符串类型,可以按照以下步骤进行操作:
1. 获取昨晚八点的时间戳,可以使用Java 8中的LocalDateTime类:
```
LocalDateTime yesterdayEight = LocalDateTime.now().minusDays(1).withHour(20).withMinute(0).withSecond(0);
long yesterdayEightTimestamp = yesterdayEight.toInstant(ZoneOffset.of("+8")).toEpochMilli();
```
2. 遍历list对象,过滤出时间值大于昨晚八点的元素:
```
List<String> filteredList = list.stream()
.filter(timeStr -> {
LocalDateTime time = LocalDateTime.parse(timeStr, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
long timestamp = time.toInstant(ZoneOffset.of("+8")).toEpochMilli();
return timestamp > yesterdayEightTimestamp;
})
.collect(Collectors.toList());
```
其中,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")用于将时间字符串转换成LocalDateTime对象。
最终,filteredList即为时间值大于昨晚八点的元素组成的列表。
阅读全文