我正在调查一个问题,我遇到了一些可疑的代码,涉及使用比较运算符来比较日期实例。例如:
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
)?
谢谢!
发布于 2011-02-07 21:27:35
如果你把它们插入到方便的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"
}
打印“之前”两次
如果我将邮票日期改为2011年,假设它不会打印。
https://stackoverflow.com/questions/4926602
复制相似问题