Ich habe zwei Zeichenfolgen, die verwendet werden, um Zeit im Format hh: mm zu speichern. Ich möchte die beiden vergleichen, um zu wissen, welche Zeit größer ist. Was ist der einfachste Weg, dies zu tun ?
Nun, wenn sie tatsächlich hh: mm sind (einschließlich führender Nullen und im 24-Stunden-Format), können Sie sie einfach lexikographisch vergleichen (d. h. mit String.compareTo(String)
). Das ist der Vorteil eines sortierbaren Formats:)
Natürlich wird das nicht überprüfen, dass beide Werte gültige Zeiten sind. Wenn Sie dies tun müssen, sollten Sie wahrscheinlich beide Zeiten analysieren: Überprüfen Sie die Länge, überprüfen Sie den Doppelpunkt, analysieren Sie zwei Teilstrings und wahrscheinlich die Anzahl der Stunden mit 60 multiplizieren und fügen Sie es zu der Anzahl der Minuten hinzu, um einen Gesamt zu erhalten Anzahl der Minuten Dann können Sie diese beiden Summen vergleichen.
BEARBEITEN: Wie in den Kommentaren erwähnt, würde ich Joda Time (möglicherweise eine reduzierte Version, angesichts der mobilen Natur) und nicht SimpleDateTimeFormat
und Date
. Joda Time ist eine viel schönere API für Datum und Uhrzeit als die eingebaute API.
Verwenden Sie die Klassen SimpleDateFormat und Date. Letzteres implementiert Comparable, daher sollten Sie die Methode .compareTo () verwenden können, um den tatsächlichen Vergleich durchzuführen. Beispiel:
%Vor%Siehe die SimpleDateFormat Dokumentation für Muster.
Ich habe vorher Funktionen in meinem Android-Programm geschrieben und werde gerne die Quelle unten teilen.
Funktionen (wird später mit "how to use" -Code) erklärt:
%Vor%Und so benutze ich sie, um die Differenz zu berechnen (Tage in diesem Beispiel). In diesem Beispiel nehme ich an, dass Sie einen Zeitstempel verwenden müssen, andernfalls können Sie leicht ändern:
%Vor%