加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

datetime – 使用Groovy比较运算符与Date对象

发布时间:2020-12-14 16:31:05 所属栏目:大数据 来源:网络整理
导读:我正在调查一个问题,遇到一些可疑代码,涉及使用比较运算符比较Date实例.例如 def stamp = ... //Date def offset = ... //Integer def d = new Date(stamp.time + offset) if (d new Date()) { ... } This资源表示以上相当于以下内容 def stamp = ... //Date
我正在调查一个问题,遇到一些可疑代码,涉及使用比较运算符比较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,之前和之后比较日期的示例,我似乎回忆起具体避免在日期上使用比较运算符,因为具有意想不到的效果.上面两个代码示例确实是等价的(也就是说,我可以在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"
}

打印“之前”两次

如果我将邮票日期切换到2011,可以说不会打印.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读