限制持续时间粒度

问题描述 投票:1回答:1

我通过从当前时间减去节省的时间来计算持续时间:time.Now().Sub(oldTime)

打印它给了我:1m30.789260489s

1m30.79s看起来会更好,我正在使用它。如何截断/减少Go中持续时间的粒度?

go
1个回答
1
投票

Package time

import "time"

1.9 func (Duration) Round

func (d Duration) Round(m Duration) Duration

Round将舍入d的结果返回到m的最接近的倍数。中途值的舍入行为是从零开始舍入。如果结果超出可以存储在持续时间中的最大(或最小)值,则Round返回最大(或最小)持续时间。如果m <= 0,则Round返回d不变。

1.9 func (Duration) Truncate

func (d Duration) Truncate(m Duration) Duration

截断将舍入d的结果返回到零到m的倍数。如果m <= 0,则Truncate返回d不变。


Round上使用Truncatetime.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
© www.soinside.com 2019 - 2024. All rights reserved.