À l'aide de Groovy opérateurs de comparaison avec des objets Date
Je suis une enquête sur une question et couru à travers certains codes suspects portant sur la comparaison de la Date d'instances à l'aide d'opérateurs de comparaison. par exemple,
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d < new Date()) {
...
}
Cette des ressources indique que le ci-dessus est équivalente à la suivante
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d.compareTo(new Date()) < 0) {
...
}
Cependant, la GDK documentation sur les Dates seulement a des exemples en comparant les dates à l'aide compareTo
, before
, et after
et je me souviens précisément d'éviter en utilisant les opérateurs de comparaison sur les Dates en raison d'une expérience avec des résultats inattendus. Sont les deux exemples de code en effet équivalent (puis-je en toute sécurité utiliser des opérateurs de comparaison sur les Dates en Groovy, ou devrais-je utiliser uniquement compareTo
, before
, et after
)?
Merci!
OriginalL'auteur Stephen Swensen | 2011-02-07
Vous devez vous connecter pour publier un commentaire.
Eh bien, si vous brancher dans la pratique GroovyConsole ils ont le même résultat.
Si je comprends correctement à la question:
Imprime "avant" deux fois
Si je passais le timbre à date de 2011 permet de dire qu'il ne serait pas l'impression.
comment savoir deux date de valeur est la même ? est juste comme ça d.compareTo(new Date()) ==0 ) ? thankx
OriginalL'auteur stan229