gpt4 book ai didi

java - 如何从时间戳列表中获取开始和结束范围?

转载 作者:行者123 更新时间:2023-11-29 04:31:21 25 4
gpt4 key购买 nike

我有一个像这样的时间戳字符串:

2016-01-14T22:43:55Z
2016-01-15T00:04:50Z
2016-01-15T00:44:59+08:30
2016-01-15T01:25:35-05:00
2016-01-15T01:44:31+08:30
2016-01-15T02:22:45-05:00
2016-01-15T02:54:18-05:00
2016-01-15T03:53:26-05:00
2016-01-15T04:32:24-08:00
2016-01-15T06:31:32Z
2016-01-15T07:06:07-05:00

我想对它们进行排序,以便从上面的时间戳中获取起始范围和结束范围。我正在做如下:

List<String> timestamp = new ArrayList<>();
// adding above string timestamp into this list
// now sort it
Collections.sort(timestamp);

这将给我上述时间戳列表的开始和结束范围。这是正确的方法还是有更好的方法?

timestamp.get(0); // start range
timestamp.get(timestamp.size() - 1); // end range

更新

所以我应该做如下的事情:

List<OffsetDateTime> timestamp = new ArrayList<>();
timestamp.add(OffsetDateTime.parse( "2016-01-15T00:44:59+08:30" ));
// add other timestamp string like above and then sort it
Collections.sort(timestamp);

timestamp.get(0); // start range
timestamp.get(timestamp.size() - 1); // end range

最佳答案

偏移日期时间

解析那些ISO 8601字符串到 java.time.OffsetDateTime 对象中。

OffsetDateTime.parse( "2016-01-15T00:44:59+08:30" )

将这些日期时间对象添加到 Collection 并排序。您可能需要 List,例如 ArrayListSortedSet

java.time 类实现了compareTo 方法,以履行它们作为Comparable 的契约。 .所以这些对象知道如何排序。

像这样:

List<OffsetDateTime> odts = new ArrayList<>();

OffsetDateTime odt = OffsetDateTime.parse( "2016-01-15T00:44:59+08:30" ) ;
odts.add( odt );
… // Parse remaining ISO 8601 strings, adding each new OffsetDateTime object to collection.

Collections.sort( odts );

关于java - 如何从时间戳列表中获取开始和结束范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43709133/

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