time - shaped - Duraciones de tiempo maravilloso
rateyourmusic (2)
Si solo quieres encontrar la diferencia entre dos veces que te creas (por ejemplo, para ver cuánto tarda en ejecutarse algo) puedes usar:
import groovy.time.*
def timeStart = new Date()
// Some code you want to time
def timeStop = new Date()
TimeDuration duration = TimeCategory.minus(timeStop, timeStart)
println duration
Si necesita trabajar específicamente con las fechas tal como se suministran como cadena anterior. Intente esto, primero el formato de ellos es un poco extraño, en particular el +01: 00, que es la zona horaria, espero que sea de +0100 para que el formato funcione. Podrías simplemente eliminar la zona horaria que acabo de reemplazar.
import groovy.time.*
def start = Date.parse("yyy-MM-dd''T''HH:mm:ss.SSSZ","2010-10-07T22:15:33.110+01:00".replace("+01:00","+0100"))
println start
def end = Date.parse("yyy-MM-dd''T''HH:mm:ss.SSSZ","2010-10-07T22:19:52.356+01:00".replace("+01:00","+0100"))
println end
TimeDuration duration = TimeCategory.minus(end, start)
println duration
Salidas
Thu Oct 07 15:15:33 MDT 2010
Thu Oct 07 15:19:52 MDT 2010
4 minutes, 19.246 seconds
Hola, estoy tratando de calcular la diferencia (duración) entre dos veces en Groovy. p.ej
start = "2010-10-07T22: 15: 33.110 + 01: 00" stop = "2010-10-07T22: 19: 52.356 + 01: 00"
Idealmente, me gustaría obtener la duración en horas, minutos, segundos, milisegundos.
¿Alguien por favor ayuda? He intentado usar las clases de duración de Groovy pero no he podido avanzar.
Gracias por tu ayuda.
Yo haria algo asi
def elapsedTime(Closure closure){
def timeStart = new Date()
closure()
def timeStop = new Date()
TimeCategory.minus(timeStop, timeStart)
}
Y entonces
TimeDuration timeDuration = elapsedTime { /*code you want to time*/ }