gpt4 book ai didi

Groovy TimeCategory 坏毫秒加法

转载 作者:行者123 更新时间:2023-12-04 05:29:12 25 4
gpt4 key购买 nike

尝试此示例代码时:

use(groovy.time.TimeCategory) {
800.millisecond + 300.millisecond
}

在 groovy 网络中 console ,我得到了一个有趣的结果:
0.1100 seconds

有谁知道为什么会发生这种情况或如何解决?

最佳答案

这看起来像一个错误,TimeDuration 包含 1100 毫秒,但是当它打印出来时,它错误地将它转换为秒。
I've added it to the Groovy JIRA as a bug 编辑 对于版本 2.0.6、1.8.9 和 2.1.0,它现在被标记为 FIXED
与此同时,我猜你需要做你自己的从 TimeDuration 到 String 的转换器:-/

编辑
你可以做这样的事情(而且可能有一种更简洁的方法)

groovy.time.TimeDuration.metaClass.normalize = { ->
def newdmap = ['days','hours','minutes','seconds','millis'].collectEntries {
[ (it):delegate."$it" ]
}.with { dmap ->
[millis:1000,seconds:60,minutes:60,hours:24,days:-1].inject( [ dur:[ days:0, hours:0, minutes:0, seconds:0, millis:0 ], roll:0 ] ) { val, field ->
val.dur."$field.key" = dmap."$field.key" + val.roll
val.roll = val.dur."$field.key".intdiv( field.value )
val.dur."$field.key" = field.value < 0 ?
val.dur."$field.key" :
val.dur."$field.key" % field.value
val
}.dur
}
new TimeDuration( newdmap.days, newdmap.hours, newdmap.minutes, newdmap.seconds, newdmap.millis )
}
这增加了 normalize方法 TimeDuration ,那么做:
use(groovy.time.TimeCategory) {
800.millisecond + 300.millisecond
}.normalize()
展会 1.100 seconds我没有对该方法进行大量测试,因此请注意它可以通过一些单元测试来确保它不会因其他情况而失败。

关于Groovy TimeCategory 坏毫秒加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12833903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com