Я исследую проблему и наткнулся на подозрительный код, связанный со сравнением экземпляров Date с использованием операторов сравнения. например
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d < new Date()) {
...
}
Этот ресурс указывает, что вышеуказанное эквивалентно следующему
def stamp = ... //Date
def offset = ... //Integer
def d = new Date(stamp.time + offset)
if (d.compareTo(new Date()) < 0) {
...
}
Однако в документации GDK по датам есть только примеры сравнения дат с использованием compareTo
, before
и after
, и я кажется, вспоминают, что специально избегали использования операторов сравнения в Dates из-за опыта с неожиданными результатами. Действительно ли два приведенных выше примера кода эквивалентны (то есть можно ли безопасно использовать операторы сравнения в Dates в Groovy или следует использовать только compareTo
, before
и after
)?
Спасибо!