使用 Groovy 在当前时间上增加 1 小时

Increment 1 hour on current time using Groovy

我正在尝试仅增加当前时间的小时数。 例如:用户当前时间是 2017/08/28 17:27:23 我想要的结果是 Mon Aug 28 18:00:00 IST 2017 - 意味着它只增加小时,其余的分钟和秒应该为零。

def d = (new Date()).format('yyyy/MM/dd HH:mm:ss')
log.info d
use(groovy.time.TimeCategory) {
    //Add increment hour by 1
    def incre = new Date(d) + 1.hours
    log.info incre
}

我得到的结果:Mon Aug 28 18:35:24 IST 2017

您可以使用 Date.set(Map map) 更新特定字段,例如 minutesecond。请记住,此方法会改变 Date 对象和 returns void 因此在您的情况下您可以简单地添加:

incre.set(minute: 0, second: 0)

初始化 Date incre 对象后,它会将分和秒设置为 0,例如

def d = (new Date()).format('yyyy/MM/dd HH:mm:ss')
log.info d
use(groovy.time.TimeCategory) {
    //Add increment hour by 1
    def incre = new Date(d) + 1.hours
    incre.set(minute: 0, second: 0)
    log.info incre
}

希望对您有所帮助。