Reputation: 1217
I want to add hours or minutes to a current date. For example I create a Date object with current time and date, and I want to increment it by 30min, how can I do such thing in Grails/Groovy ?
Date Now : Thu Jan 16 11:05:48 EST 2014
Adding 30min to Now : Thu Jan 16 11:35:48 EST 2014
I was wondering if I could do the same that we can do with add 1 to date and it moves it a day ahead.
Upvotes: 38
Views: 52934
Reputation: 4436
Just use the java.time
package.
import java.time.LocalDateTime
Date now = new Date()
Date thirtyMinsFromNow = LocalDateTime.now().plusMinutes(30).toDate()
println "Date Now: $now"
println "Adding 30min to Now: $thirtyMinsFromNow"
Upvotes: 1
Reputation: 747
If your goal is very simple, you can just manipulate the underlying millisecond value.
final Long HOUR = 60 * 60 * 1000 // milliseconds in an hour
Date now = new Date()
Date oneHourAgo = new Date(now.toInstant().toEpochMilli() - HOUR)
Upvotes: 4
Reputation: 3556
You can use TimeCategory
import groovy.time.TimeCategory
currentDate = new Date()
println currentDate
use( TimeCategory ) {
after30Mins = currentDate + 30.minutes
}
println after30Mins
Upvotes: 74