gpt4 book ai didi

java - 如何获取 LinkedList 中给定开始和结束日期时间之间的日期时间元素范围

转载 作者:太空宇宙 更新时间:2023-11-04 12:59:19 25 4
gpt4 key购买 nike

我从服务器获取数据并将它们缓冲在链接列表中。收到数据后,我将其分配给本地时间戳,以便我的 LinkedList 中的每个元素都有一个时间戳属性。我现在想从缓冲区中读出一段时间内的数据。

例如,从 2016 年 1 月 28 日 08:44:00 到 2016 年 1 月 28 日 08:45:00 期间 1 分钟的所有元素。

我怎样才能做到呢?我将非常感谢您的建议或代码示例。

最佳答案

JAVA 8:

public class TimeInListTest {
public static void main(String[] args) throws ParseException {
DateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");

List<Element> list = new LinkedList<>();
list.add(new Element(dateFormat.parse("28.01.2016 08:43:00 ")));
list.add(new Element(dateFormat.parse("28.01.2016 08:43:05 ")));
list.add(new Element(dateFormat.parse("28.01.2016 08:44:00 ")));
list.add(new Element(dateFormat.parse("28.01.2016 08:44:30 ")));
list.add(new Element(dateFormat.parse("28.01.2016 08:44:35 ")));
list.add(new Element(dateFormat.parse("28.01.2016 08:44:38 ")));
list.add(new Element(dateFormat.parse("28.01.2016 08:45:00 ")));
list.add(new Element(dateFormat.parse("28.01.2016 08:46:00 ")));

Date leftLimit = dateFormat.parse("28.01.2016 08:44:00");
Date rightLimit = dateFormat.parse("28.01.2016 08:45:00");

System.out.println(list.stream().filter(element -> element.date.after(leftLimit) && element.date.before(rightLimit)).collect(Collectors.toList()));
}

static class Element {
Date date;
String someData;

public Element() {
}

public Element(Date date) {
this.date = date;
}

public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}

@Override
public String toString() {
return "Element{" +
"date=" + date +
'}';
}
}
}

JAVA 7(替换 lambda):

List<Element> resultList = new LinkedList<>();

for (Element element: list) {
if (element.date.after(leftLimit) && element.date.before(rightLimit)) {
resultList.add(element);
}
}

System.out.println(resultList);

结果:

[Element{date=Thu Jan 28 08:44:30 MSK 2016}, Element{date=Thu Jan 28 08:44:35 MSK 2016}, Element{date=Thu Jan 28 08:44:38 MSK 2016}]

关于java - 如何获取 LinkedList 中给定开始和结束日期时间之间的日期时间元素范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35055579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com