Datetime 对日期对象使用Groovy比较运算符

Datetime 对日期对象使用Groovy比较运算符,datetime,date,groovy,operators,gdk,Datetime,Date,Groovy,Operators,Gdk,我正在调查一个问题,遇到一些可疑代码,涉及使用比较运算符比较日期实例。e、 g def stamp = ... //Date def offset = ... //Integer def d = new Date(stamp.time + offset) if (d < new Date()) { ... } def stamp=//日期 def偏移量=//整数 def d=新日期(stamp.time+偏移量) 如果(d

我正在调查一个问题,遇到一些可疑代码,涉及使用比较运算符比较日期实例。e、 g

    def stamp = ... //Date
    def offset = ... //Integer
    def d = new Date(stamp.time + offset)
    if (d < new Date()) {
        ...
    }
def stamp=//日期
def偏移量=//整数
def d=新日期(stamp.time+偏移量)
如果(d<新日期()){
...
}
resource表示上述内容等同于以下内容

    def stamp = ... //Date
    def offset = ... //Integer
    def d = new Date(stamp.time + offset)
    if (d.compareTo(new Date()) < 0) {
        ...
    }
def stamp=//日期
def偏移量=//整数
def d=新日期(stamp.time+偏移量)
如果(d.compareTo(new Date())<0){
...
}
但是,只有使用
compareTo
之前
之后比较日期的示例,我似乎记得,由于遇到意外结果,我特别避免在日期上使用比较运算符。上述两个代码示例是否确实等效(也就是说,我可以在Groovy中安全地使用日期比较运算符,还是应该只使用
compareTo
之前和之后的


谢谢

如果您将它们插入方便的GroovyConsole,它们会得到相同的结果

如果我正确理解问题:

def stamp = Date.parse("MM/dd/yyyy","02/02/2010")
def offset = 1213123123
def d = new Date(stamp.time+offset)
if(d < new Date() ) { 
    println "before"
}
if(d.compareTo(new Date()) < 0) { 
    println "before"
}
def stamp=Date.parse(“MM/dd/yyyy”,“02/02/2010”)
def偏移量=1213123123
def d=新日期(戳记时间+偏移量)
如果(d<新日期()){
println“之前”
}
如果(d.compareTo(new Date())<0){
println“之前”
}
打印“之前”两次


如果我把邮票日期改为2011年,我们就说它不会印刷

我曾在GroovyConsole中对此进行过实验,但我担心我可能遗漏了一些涉及日期的不同组件的案例。如何知道两个日期值是相同的?是否与此d.compareTo(new Date())==0一样?谢谢