Sortieren von Datums-und uhrzeitwerten
Putting-einfach, ich habe einen string-array mit verschiedenen Daten und Zeiten. Jedes element ist in diesem format:
2015-08-27T22:24:31.903
Ist, YYYY-MM-DDTHH:MM:SS.MMM
Ich bin, diese zu Sortieren. Gibt es eine Standard-Methode zur Verfügung zu Sortieren dieses format?
Was ich jetzt mache, ist das teilen der saite an T, konvertieren von Datum und Uhrzeit für den jeweiligen Zeitstempeln, hinzufügen und Sortieren dann die timestamp-Werte. Gibt es einen direkten parser für dieses format zur Verfügung? Eine bessere Lösung ist am meisten willkommen.
- Sie können ganz einfach Sortieren Sie die Saiten, weil Sie in der ISO-8601 - format, das macht Sie leicht sortiert werden können. Keine Konvertierung erforderlich ist.
InformationsquelleAutor Akeshwar Jha | 2016-09-26
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja. Da die ISO-Zeichenfolge date-Felder in absteigender Reihenfolge der Größenordnung, und die Felder eine Feste Breite haben, können Sie einfach Sortieren, die Saiten direkt mit
- Arrays.sort(Object[] a)
: Sortiert das angegebene array von Objekten in aufsteigender Reihenfolge, entsprechend der natürlichen Reihenfolge der Elemente.Ja.
LocalDateTime.parse(CharSequence text)
: Erhält eine Instanz vonLocalDateTime
aus einem text-string wie2007-12-03T10:15:30
.2016-08-16T06:31:34Z
Nehme ich diese strings sind. Wenn Sie nicht wollen, das offensichtliche zu tun (konvertieren Sie Sie in
java.util.Date
oderjava.time.Instant
und vergleichen Sie das Ergebnis), können Sie nur vergleichen Sie als Zeichenfolgen, die bestimmten datetime-format (eine fast-vollständige ISO-8601-Zeitstempel, nur fehlt eine Zeitzone-Anzeige) funktioniert ordnungsgemäß, wenn Sie die Verwendung von string-Vergleich.Grundlose Beispiel (live-Kopie):
Ausgabe:
Können Sie, natürlich, stellen eine
Comparator
wenn Sie einen anderen Bestellung (wie umgekehrter Reihenfolge).1) Analysieren Sie Ihre strings mit den entsprechenden " = SimpleDateFormat:
2) Speichern wird jedes Datum in einer Liste. Zu tun, dass Erstens instanziieren, eine neue Liste...
... nach der parse-Befehl hinzufügen, wird jedes Datum in der Liste:
3) Sortieren Sie mit:
oder
Date
, da string ist sortierbar, wie Sie ist.