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