Que de la Date de la comparaison à l'aide de “isBefore” en Java Joda Time
Est-il un moyen d'avoir seulement des dates par rapport pour DateTime objet avec isBefore fonction?
Pour ex.,
DateTime start = new DateTime(Long.parseLong(<someInput>));
DateTime end = new DateTime(Long.parseLong(<someInput>));
Maintenant quand je le fais,
while (start.isBefore(end)) {
//add start date to the list
start = start.plusDays(1);
}
Il en résulte un comportement incohérent (pour mon cas) que c'est en tenant compte de l'heure ainsi alors que ce que je veux, c'est juste les dates par rapport à l'aide de isBefore. Est-il possible que je peux le faire?
S'il vous plaît laissez-moi savoir.
Merci!
Vous devez vous connecter pour publier un commentaire.
Si vous voulez comparer des dates seulement, vous voudrez probablement utiliser la
LocalDate
classe, plutôt que d'unDateTime
.La JodaTime docs sont très bonnes: http://joda-time.sourceforge.net/apidocs/org/joda/time/LocalDate.html
LocalDate
plutôt qu'unDateTime
. Est-il de toute question ou de toute généraux de l'aideDateTime
..?LocalDate
est que la question a demandé spécifiquement sur la comparaison des composants de date. À l'aide deDateTime
est beau, mais c'est la modélisation d'un concept différent. Il est important de choisir la bonne pour vos besoins.Une autre stratégie consiste à mettre en forme.
Passer à l'utilisation de LocalDate plutôt que de DateTime. Le concept de JodaTime est un "partielle" (voir la ReadablePartial interface).
C'est tout à fait une vieille question, mais vaut la peine d'ajouter une réponse! Joda-time n'est pas préféré que ces jours étant donné que nous avons de merveilleux support de Java 8 pour la date-le temps des opérations. Si vous avez encore d'utiliser joda-time puis utilisez le
compareTo
méthode dansLocalDate
classe.Officiel de Java-doc peut être trouvé ici.
Vous pouvez définir le temps de la
DateTime
à zéro (ce qui signifie minuit) après l'analyse:Ou utiliser l'un de l'autre Joda classes de Temps; il y a beaucoup plus de
DateTime
! Si vous avez affaire à des dates seulement, vous voudrez probablement utiliserLocalDate
au lieu deDateTime
.dayOfMonth().roundFloorCopy()
gère le cas limite.