嗨我正在嘗試計算兩次Groovy之間的差異(持續時間)。例如Groovy持續時間
開始= 「2010-10-07T22:15:33.110 + 01:00」 停止= 「2010-10-07T22:19:52.356 + 01:00」
理想我希望得到持續時間以小時,分鐘,秒,毫秒返回。
任何人都可以請幫忙。我試圖使用Groovy的持續時間類,但一直未能取得任何進展。
感謝您的協助。
嗨我正在嘗試計算兩次Groovy之間的差異(持續時間)。例如Groovy持續時間
開始= 「2010-10-07T22:15:33.110 + 01:00」 停止= 「2010-10-07T22:19:52.356 + 01:00」
理想我希望得到持續時間以小時,分鐘,秒,毫秒返回。
任何人都可以請幫忙。我試圖使用Groovy的持續時間類,但一直未能取得任何進展。
感謝您的協助。
如果你只是想找到你自己創建的兩個時間之間的差異(例如看到的東西需要多長時間來執行),你可以使用:
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
如果你特別需要的日期合作如上面提供的字符串。試試這個,首先它們的格式有些奇怪,特別是+01:00,這是時區,我預計格式的工作時它會是+0100。你可以刪除我剛剛替換的時區。
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
輸出
Thu Oct 07 15:15:33 MDT 2010
Thu Oct 07 15:19:52 MDT 2010
4 minutes, 19.246 seconds
我會做這樣的事情
def elapsedTime(Closure closure){
def timeStart = new Date()
closure()
def timeStop = new Date()
TimeCategory.minus(timeStop, timeStart)
}
的那麼
TimeDuration timeDuration = elapsedTime { /*code you want to time*/ }
是你有時間或格式你轉換爲這種格式? – 2010-10-11 21:04:39