我正在调查一个问题,并遇到了一些涉及使用比较运算符比较 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) {
...
}
但是,有关 Dates 的 GDK 文档仅包含使用compareTo
、before
和比较日期的示例,并且after
由于遇到意外结果,我似乎特别记得避免在 Dates 上使用比较运算符。以上两个代码示例是否确实等效(也就是说,我可以安全地在 Groovy 中对日期使用比较运算符,还是应该只使用compareTo
,before
和after
)?
谢谢!