Reputation: 5146
I have a timestamp string like this:
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
I want to sort them so that I can get what is starting range and ending range from above timestamp. I am doing like below:
List<String> timestamp = new ArrayList<>();
// adding above string timestamp into this list
// now sort it
Collections.sort(timestamp);
This will give me start and end range from the above list of timestamp. Is this the right way to do it or there is any better way?
timestamp.get(0); // start range
timestamp.get(timestamp.size() - 1); // end range
Update
So I should do something like below:
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
Upvotes: 1
Views: 1497
Reputation: 339432
OffsetDateTime
Parse those ISO 8601 strings into java.time.OffsetDateTime
objects.
OffsetDateTime.parse( "2016-01-15T00:44:59+08:30" )
Add those date-time objects to a Collection
and sort. You probably want a List
such as ArrayList
or a SortedSet
.
The java.time classes implement the compareTo
method, to fulfill their contract as a Comparable
. So these objects know how to sort.
Like this:
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 );
Upvotes: 3
Reputation: 123
You must use Comparator.
First of all create a class and implement Comparator
. And then compare value1 and value2 with your choice. After that use this class to Collections.sort.
Regards, a.ayati
Upvotes: 0