我需要在 groovy 中从另一个时间戳中减去一个时间戳,并获得已经过去的小时数。时间戳来自 MySQL。当我做简单的数学运算时,我会得到四舍五入到零整数的天数。
endDate - startDate 给出四舍五入的整数
我想要 2.35 小时等的结果。
你可以groovy.time.TimeCategory
这样使用:
// create two timestamps
import java.sql.Timestamp
def dates = ['2012/08/03 09:00', '2012/08/03 10:30']
def (Timestamp a, Timestamp b) = dates.collect {
new Timestamp( Date.parse( 'yyyy/MM/dd hh:mm', it ).time )
}
// Then compare them with TimeCategory
use(groovy.time.TimeCategory) {
def duration = b - a
println "${duration.days}d ${duration.hours}h ${duration.minutes}m"
}
这将打印:
0d 1h 30m