Durée de temps Groovy
Salut j'essaie de calculer la différence (durée) entre deux fois dans Groovy. par exemple,
start = "2010-10-07T22:15: 33.110+01:00" stop = "2010-10-07T22:19:52.356+01:00"
idéalement, je voudrais que la durée soit retournée en heures, Minutes, secondes, millisecondes.
quelqu'un Peut s'il vous plaît aider. J'ai essayé D'utiliser les classes de durée de Groovy mais je n'ai pas pu faire de progrès.
merci de votre aide.
2 réponses
si vous voulez juste trouver la différence entre deux fois que vous créez vous-même (par exemple pour voir combien de temps il faut pour exécuter quelque chose) vous pouvez utiliser:
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 vous avez spécifiquement besoin de travailler avec les dates telles que fournies en chaîne ci-dessus. Essayez d'abord le format est un peu bizarre, en particulier le +01:00, qui est le fuseau horaire, je m'attends à ce qu'il soit +0100 pour le format de travail. Vous pourriez juste enlever le fuseau horaire que je viens de faire remplacer.
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
Sorties
Thu Oct 07 15:15:33 MDT 2010
Thu Oct 07 15:19:52 MDT 2010
4 minutes, 19.246 seconds
je voudrais faire quelque chose comme ça
def elapsedTime(Closure closure){
def timeStart = new Date()
closure()
def timeStop = new Date()
TimeCategory.minus(timeStop, timeStart)
}
puis
TimeDuration timeDuration = elapsedTime { /*code you want to time*/ }