我通过从当前时间减去节省的时间来计算持续时间:time.Now().Sub(oldTime)
打印它给了我:1m30.789260489s
1m30.79s看起来会更好,我正在使用它。如何截断/减少Go中持续时间的粒度?
import "time"
func (d Duration) Round(m Duration) Duration
Round将舍入d的结果返回到m的最接近的倍数。中途值的舍入行为是从零开始舍入。如果结果超出可以存储在持续时间中的最大(或最小)值,则Round返回最大(或最小)持续时间。如果m <= 0,则Round返回d不变。
func (d Duration) Truncate(m Duration) Duration
截断将舍入d的结果返回到零到m的倍数。如果m <= 0,则Truncate返回d不变。
在Round
上使用Truncate
或time.Duration
方法。
例如,
package main
import (
"fmt"
"time"
)
func main() {
d, err := time.ParseDuration("1m30.789260489s")
if err != nil {
panic(err)
}
fmt.Println(d)
fmt.Println(d.Round(10 * time.Millisecond))
}
游乐场:https://play.golang.org/p/8b3xAxfSE90
输出:
1m30.789260489s
1m30.79s