Comment comparer chaîne d'heure avec heure actuelle dans java?
J'ai un temps de chaîne comme "15:30" je veux comparer cette chaîne à l'heure actuelle.
S'il vous plaît suggérer quelque chose de facile.
Et comment faire pour obtenir l'heure actuelle en heure minute (format"HH:mm")
Référence SimpleDateFormat stackoverflow.com/questions/3056703/simpledateformat
Voulez-vous une gamme de "maintenant"? par exemple à "12:34.999", 12:34 c'est un match, mais de 1 milliseconde plus tard, il n'est pas - c'est ce que vous voulez?
Je veux juste comparer si l'heure actuelle est plus grande que la chaîne de temps ou pas.
C'est mon temps de chaîne qui je veux comparer. Chaîne time1End = Integer.toString(calendrier.get(Calendar.HOUR_OF_DAY)) + ":15"; je l'ai converti en format ci-dessous. java.util.Date endTime1 = new SimpleDateFormat("HH:mm").parse(time1End); maintenant convertir sstemdate dans le ci-dessus format de l'heure. java.util.Date systemdate = new java.util.Date(); SimpleDateFormat parser = new SimpleDateFormat("HH:mm"); String systemTime = parser.format(systemdate); java.util.Date currentTime = new SimpleDateFormat("HH:mm").parse(systemTime); Ensuite, nous peut comparer comme ça. si (currentTime.après(endTime1))
Voulez-vous une gamme de "maintenant"? par exemple à "12:34.999", 12:34 c'est un match, mais de 1 milliseconde plus tard, il n'est pas - c'est ce que vous voulez?
Je veux juste comparer si l'heure actuelle est plus grande que la chaîne de temps ou pas.
C'est mon temps de chaîne qui je veux comparer. Chaîne time1End = Integer.toString(calendrier.get(Calendar.HOUR_OF_DAY)) + ":15"; je l'ai converti en format ci-dessous. java.util.Date endTime1 = new SimpleDateFormat("HH:mm").parse(time1End); maintenant convertir sstemdate dans le ci-dessus format de l'heure. java.util.Date systemdate = new java.util.Date(); SimpleDateFormat parser = new SimpleDateFormat("HH:mm"); String systemTime = parser.format(systemdate); java.util.Date currentTime = new SimpleDateFormat("HH:mm").parse(systemTime); Ensuite, nous peut comparer comme ça. si (currentTime.après(endTime1))
OriginalL'auteur mayank sharma | 2014-07-24
Vous devez vous connecter pour publier un commentaire.
tl;dr
Détails
Vous devriez être en train de penser dans l'autre sens: Comment obtenir cette chaîne transformée en une valeur de temps. Vous ne serait pas tenter de mathématiques en tournant vos nombres en chaînes de caractères. Aussi avec la date-heure de valeurs.
Éviter la vieille livré classes java.util.La Date et l' .Calendrier comme ils sont notoirement difficile, imparfait à la fois dans la conception et la mise en œuvre. Ils sont supplantés par la nouvelle java.en temps dans Java 8. Et java.le temps a été inspiré par Joda-Time.
Les deux java.le temps et Joda-Time offre une classe de capturer un moment de la journée, sans aucune date de time zone:
LocalTime
.java.temps
À l'aide de java.les classes de temps intégré à Java, en particulier
LocalTime
. Obtenir l'heure actuelle-de-jour dans votre fuseau horaire local. Construire une heure de la journée par la chaîne d'entrée. Comparer avec laisBefore
,isAfter
, ouisEqual
méthodes.Mieux préciser votre choix/l'heure prévue de la zone plutôt que de s'appuyer implicitement sur la JVM par défaut en cours de fuseau horaire.
Joda-Time
Le code dans ce cas à l'aide de la Joda-Time library arrive à être à peu près le même que le code vu ci-dessus pour java.temps.
Méfiez-vous que le Joda-Time projet est maintenant dans le mode de maintenance, avec l'équipe conseiller de la migration vers le java.le temps classes.
Sur java.temps
La java.le temps cadre est intégré dans Java 8 et les versions ultérieures. Ces classes permettent d'éviter la pénible vieux héritage date du temps des classes comme
java.util.Date
,Agenda
, &SimpleDateFormat
.La Joda-Time projet, maintenant dans le mode de maintenance, conseille la migration vers le java.le temps classes.
Pour en savoir plus, consultez les Oracle Tutoriel. Et de recherche de Débordement de Pile pour de nombreux exemples et des explications. La spécification est JSR 310.
Où obtenir le java.les classes de temps?
La ThreeTen-Extra projet s'étend java.temps avec d'autres classes. Ce projet est un terrain d'essai pour de possibles futurs ajouts à java.temps. Vous pouvez trouver quelques classes utiles ici comme
Intervalle
,YearWeek
,YearQuarter
, et plus.href="http://www.joda.org/joda-time/" >Joda-Time 2.3 fonctionne en Java 5, 6, 7, et 8. Ajoutez simplement les le fichier jar à votre projet.
Mise à jour: Le Joda-Time projet est maintenant en mode de maintenance. L'équipe conseille de migrer vers java.les classes de temps. Pour Java 6 & 7, vous trouverez une grande partie de la java.des fonctionnalités de back-porté dans le ThreeTen-Backport projet. Pour Android, ThreeTenABP.
tl;dr trop.. ...
OriginalL'auteur Basil Bourque
Il suffit de comparer les chaînes de caractères comme normal comme:
Si le temps est le même x sera
true
si elles ne sont pas x serafalse
OriginalL'auteur James
Suivante serait d'obtenir le temps. Vous pouvez que de l'utiliser pour comparer les
OriginalL'auteur Darshan Lila
Essayer cette
vous pouvez comparer avec votre chaîne
OriginalL'auteur Ramzan Zafar
J'ai une situation similaire où j'ai besoin de comparer le temps de chaîne comme "15:30" à l'heure actuelle.
Je suis à l'aide de Java 7 donc je ne peux pas utiliser le Basilic Bourque de la solution.
J'ai donc mis en œuvre une méthode qui prend une chaîne de caractères comme "15:30" et
vérifier avec le temps actuel et les retours vrai si le temps actuel est après le moment de l'entrée.
Calendrier a d'autres utilisation complète des méthodes comme
after(Object when)
OriginalL'auteur Bacteria
Voici mon exemple pour comparer avant et après l'heure actuelle :
MainActivity.java
OriginalL'auteur Dato' Sapik
Donc ma Solution est un peu différent, elle commence avec la création d'une horloge avec l'heure actuelle, le test de l'heure agaisnt définis par l'utilisateur int.
OriginalL'auteur Sc001010tt
Ce code permet de vérifier Utilisateur Saisi temps avec heure actuelle du système et retour de la différence de temps en valeur longue.
L'utilisateur doit passer le temps dans les "yyyy-MM-dd HH:mm:ss" format.
SimpleDateFormat
classe. Au moins, pas comme la première option. Et pas sans réserve. Aujourd'hui, nous avons tellement mieux enjava.time
, le moderne Java date et l'heure de l'API et sonDateTimeFormatter
.OriginalL'auteur Abhishek Sengupta