Prowadzę dochodzenie w sprawie problemu i przeszukuję podejrzany kod obejmujący porównywanie wystąpień Date za pomocą operatorów porównania. na przykładUżywanie operatorów porównania Groovy z obiektami Date
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d < new Date()) {
...
}
This zasób wskazuje powyższe jest równoważne następującym
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d.compareTo(new Date()) < 0) {
...
}
Jednak GDK documentation on Dates ma tylko przykłady porównywanie dat przy użyciu compareTo
, before
i after
i wydaje mi się przypomnieć specjalnie unikając przy użyciu porównania operatorzy w dniu dat z powodu nieoczekiwanych rezultatów. Czy powyższe dwa przykłady kodu są rzeczywiście równoważne (to znaczy czy mogę bezpiecznie używać operatorów porównania w Datach w Groovy, czy też powinienem używać tylko compareTo
, before
i after
)?
Dzięki!
Zrobiłem eksperymenty z tym w GroovyConsole, ale obawiam się, że może mi brakować jakiegoś narożnego przypadku obejmującego różne elementy Daty. –
jak poznać dwie wartości daty jest taka sama? czy to tak jak w przypadku d.compareTo (new Date()) == 0)? dziękuję – danielad