Sto analizzando un problema e ho trovato alcuni codici sospetti che coinvolgono il confronto delle istanze di Date utilizzando operatori di confronto. per esempio.Utilizzo degli operatori di confronto di Groovy con gli oggetti Date
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d < new Date()) {
...
}
This risorsa indica quanto sopra è equivalente al seguente
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d.compareTo(new Date()) < 0) {
...
}
Tuttavia, l'GDK documentation on Dates ha solo degli esempi di confronto date utilizzando compareTo
, before
e after
e mi sembra di ricordare in particolare evitando di usare il confronto operatori su Date a causa di un'esperienza con risultati inaspettati. I due esempi di codice sopra riportati sono effettivamente equivalenti (ovvero, posso utilizzare in modo sicuro operatori di confronto su Date in Groovy, oppure dovrei utilizzare solo compareTo
, before
e after
)?
Grazie!
Ho fatto esperimenti con questo nella GroovyConsole, ma temo che possa mancare qualche caso angolare che coinvolge i diversi componenti di un appuntamento. –
come sapere che il valore di due date è lo stesso? è proprio come questo d.compareTo (new Date()) == 0)? thankx – danielad