Comment comparer les Temps de java/android (donnée d'entrée dans les chaînes de caractères)?
J'ai deux chaînes de caractères qui sont utilisés pour stocker l'heure dans le format hh:mm.Je veux le comparer ces deux savoir laquelle est la plus grande.Qui est la meilleure façon d'aller à ce sujet?
OriginalL'auteur rogerstone | 2011-02-26
Vous devez vous connecter pour publier un commentaire.
Bien, si ils sont fait hh:mm (y compris les zéros, et dans le format de 24 heures), alors vous pouvez simplement comparer de manière lexicographique (c'est à dire à l'aide de
String.compareTo(String)
). C'est l'avantage d'un sortable format 🙂Bien sûr, ce n'est pas de vérifier que les deux valeurs sont valables fois. Si vous avez besoin de le faire, vous devriez probablement analyser les deux fois: vérifier la longueur, vérifier le côlon, l'analyser en deux sous-chaînes, et probablement multiplier le nombre d'heures par 60 et l'ajouter au nombre de minutes pour obtenir un total nombre de minutes. Ensuite, vous pouvez comparer ces deux totaux.
EDIT: Comme mentionné dans les commentaires, si vous ne besoin d'analyser les valeurs pour quelque raison que ce soit, personnellement, je vous conseille d'utiliser Joda Time (peut-être une version réduite, compte tenu de la nature mobile) plutôt que de
SimpleDateTimeFormat
etDate
. Joda Time c'est tellement plus agréable de la date et de l'heure de l'API de la intégré dans un.J'ai ajouté ma réponse, qui est de vous montrer comment comparer des dates.
Des commentaires à ce sujet?
Oui, si vous stockez des dates au format aaaa-MM-jj, et la date/heure au format aaaa-MM-jj HH:mm:ss, vous pouvez toujours lexicographiquement.
Skeet: Merci
OriginalL'auteur Jon Skeet
Utiliser le SimpleDateFormat et la Date de classes. Cette classe implémente Comparable, de sorte que vous devriez être en mesure d'utiliser l' .compareTo() la méthode pour faire la comparaison réelle. Exemple:
Voir le SimpleDateFormat de la documentation pour les modèles.
OriginalL'auteur hanspeide
J'ai écrit des fonctions pour cette avant dans mon Android programme et je serai heureux de partager la source ci-dessous.
Fonctions (expliquera plus tard à l'aide de "comment utiliser" code):
Et ce est la façon dont je les utilise pour calculer la différence (en nombre de jours dans cet exemple). Dans cet exemple, je suis en supposant que vous avez un timestamp à utiliser, sinon vous pouvez changer facilement:
OriginalL'auteur Wroclai