RyanLynch
RyanLynch

Reputation: 3007

Duration between two dates in Groovy

Is there a way in Groovy to get the duration between two Date objects? The duration format I'm looking for would be something like: 2 days, 10 hours, 30 minutes...

Thanks

Upvotes: 38

Views: 64630

Answers (2)

ig0774
ig0774

Reputation: 41277

TimeCategory has some methods for getting a duration. You could use it like

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

Upvotes: 62

Fusca Software
Fusca Software

Reputation: 720

The use()-Syntax is weird to me. so I prefer it like this:

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,
];

Upvotes: 15

Related Questions