📜  Golang 中的 time.Truncate()函数示例

📅  最后修改于: 2021-10-24 14:06:26             🧑  作者: Mango

在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言中的Truncate()函数用于查找将规定的持续时间“d”向零舍入到“m”持续时间的倍数的结果。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。

句法:

func (d Duration) Truncate(m Duration) Duration

这里,d 是四舍五入的持续时间,m 是倍数。

返回值:它返回将规定的持续时间“d”向零四舍五入到“m”持续时间的倍数的结果。但如果 m 小于或等于 0,则返回未更改的 ‘d’。

示例 1:

// Golang program to illustrate the usage of
// Truncate() function
  
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Calling main
func main() {
  
    // Defining duration
    // of Truncate method
    tr, _ := time.ParseDuration("45m32.67s")
  
    // Prints truncated duration
    fmt.Printf("Truncated duration is : %s", 
                 tr.Truncate(2*time.Second))
}

输出:

Truncated duration is : 45m32s

这里,“d”四舍五入为 m 的倍数。

示例 2:

// Golang program to illustrate the usage of
// Truncate() function
  
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Calling main
func main() {
  
    // Defining duration of Truncate method
    tr, _ := time.ParseDuration("7m11.0530776s")
  
    // Array of m
    t := []time.Duration{
        time.Microsecond,
        time.Second,
        4 * time.Second,
        11 * time.Minute,
    }
  
    // Using for loop and range to
    // iterate over an array
    for _, m := range t {
  
        // Prints rounded d of all 
        // the items in an array
        fmt.Printf("Truncated(%s) is : %s\n",
                           m, tr.Truncate(m))
    }
}

输出:

Truncated(1µs) is : 7m11.053077s
Truncated(1s) is : 7m11s
Truncated(4s) is : 7m8s
Truncated(11m0s) is : 0s

在这里,首先形成一个 ‘t’ 数组,然后使用一个范围来迭代持续时间 ‘t’ 的所有值。最后使用 Truncate() 方法打印上述代码中 t 的所有舍入值。