time - Groovy 持续时间

标签 time groovy duration

嗨,我正在尝试计算 Groovy 中两次之间的差异(持续时间)。例如

start =  "2010-10-07T22:15:33.110+01:00"
stop =   "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

关于time - Groovy 持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3909855/

相关文章:

JavaScript 倒计时

Java 将 int 转换为小时和分钟

Java Files.getLastModifiedTime 返回意外结果

jenkins - Jenkins Pipeline 中的文件操作

在 Jenkins 上解析 Groovy 脚本时出现 java.lang.StackOverflowError

android - 在 Android 中获取音频文件持续时间的最佳方法是什么?

java - 解析为 LocalTime 模式 mm :ss. S

python - 生成 datetime.time 对象数组 python

grails - 我可以将参数从 Controller 传递到服务类吗

php - Gettext 缓存的烦恼