Bash Groovy 中的命令、日期和数学
Bash command, dates and math in Groovy
我试图通过在 Groovy 中用 "end" 减去 "start" 来计算运行时间,但我不确定如何执行数学计算,因为我已经推导出开始和结束时间使用 bash 命令(日期以毫秒为单位)。这是示例:
@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='1.1.0')
import wslite.soap.*
import wslite.http.auth.*
import java.util.regex.*
import groovy.xml.*
import groovy.util.*
import java.lang.*
Process start = 'date +%s%N'.execute()
.....
SOAP request and response
.....
Process end = 'date +%s%N'.execute()
现在我看起来像下面这样,但给我 HTTP 500 错误:
Process runtime = '$((end-start))'.execute()
println runtime.text
如果你确实想用内置的东西来做到这一点(如你的评论中所述),那么你只需要开始时刻、结束时刻和持续时间。
import java.time.*
LocalDateTime start = LocalDateTime.now()
// Do some stuff
LocalDateTime end = LocalDateTime.now()
Duration d = Duration.between(start, end)
println "Operation took ${d.seconds}.${d.nanos}s"
但恐怕 Java 的 DateTime 类 无法修复您的 HTTP 500 错误。
我试图通过在 Groovy 中用 "end" 减去 "start" 来计算运行时间,但我不确定如何执行数学计算,因为我已经推导出开始和结束时间使用 bash 命令(日期以毫秒为单位)。这是示例:
@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='1.1.0')
import wslite.soap.*
import wslite.http.auth.*
import java.util.regex.*
import groovy.xml.*
import groovy.util.*
import java.lang.*
Process start = 'date +%s%N'.execute()
.....
SOAP request and response
.....
Process end = 'date +%s%N'.execute()
现在我看起来像下面这样,但给我 HTTP 500 错误:
Process runtime = '$((end-start))'.execute()
println runtime.text
如果你确实想用内置的东西来做到这一点(如你的评论中所述),那么你只需要开始时刻、结束时刻和持续时间。
import java.time.*
LocalDateTime start = LocalDateTime.now()
// Do some stuff
LocalDateTime end = LocalDateTime.now()
Duration d = Duration.between(start, end)
println "Operation took ${d.seconds}.${d.nanos}s"
但恐怕 Java 的 DateTime 类 无法修复您的 HTTP 500 错误。