Groovy中两个日期之间的持续时间

Rya*_*nch 33 groovy

Groovy中有没有办法获得两个Date对象之间的持续时间?我正在寻找的持续时间格式如下:2天,10小时,30分钟......

谢谢

ig0*_*774 57

TimeCategory有一些获取持续时间的方法.你可以像使用它一样

use(groovy.time.TimeCategory) {
    def duration = date1 - date2
    print "Days: ${duration.days}, Hours: ${duration.hours}, etc."
}
Run Code Online (Sandbox Code Playgroud)

  • TimeCategory.minus(date1,date2).days (7认同)
  • 请注意,这可能会导致输入夏令时 (DST)/夏令时时出现错误计算。由于时间会跳过一小时,因此当您预计相差 1 天时,它将计算 0 天和 23 小时。 (2认同)

Fus*_*are 8

use() - 语法对我来说很奇怪.所以我更喜欢这样:

def duration = groovy.time.TimeCategory.minus(
  new Date(),
  new Date(session.creationTime)
);
def values = [
            "seconds: " + duration.seconds,
            "min: " + duration.minutes,
            "hours: " + duration.hours,
            "days: " + duration.days,
            "ago: " + duration.ago,
];
Run Code Online (Sandbox Code Playgroud)