Datetime 对日期对象使用Groovy比较运算符
我正在调查一个问题,遇到一些可疑代码,涉及使用比较运算符比较日期实例。e、 gDatetime 对日期对象使用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
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一样?谢谢