Golang time.Time.Truncate()函数及其示例

Golang time.Time.Truncate()函数及其示例

在Go语言中,time包为时间相关操作提供了一系列函数和类型,其中time.Time.Truncate()函数可以截断时间值到更早的日期或时间。

函数说明

time.Time.Truncate()函数的定义如下:

func (t Time) Truncate(d Duration) Time

该函数会将时间值t截断到d的整数倍。例如,如果d为1天,则该函数会将时、分、秒截断为0。若d为1小时,则该函数会将分、秒截断为0。

该函数返回被截断后的时间值,但原时间值t不会改变。

示例代码

以下是对time.Time.Truncate()函数的一些示例代码:

  1. 将时间值t截断到天:
package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    truncated := t.Truncate(24 * time.Hour)

    fmt.Println("原时间值:", t)
    fmt.Println("截断后时间值:", truncated)
}

该示例中,我们使用time.Now()函数获取当前时间值,然后将其截断到天。输出结果如下:

原时间值: 2022-05-04 14:18:28.87886 +0800 CST m=+0.000115297
截断后时间值: 2022-05-04 00:00:00 +0800 CST

可见,时、分、秒都被截断为0,只剩下年、月、日。

  1. 将时间值t截断到小时:
package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    truncated := t.Truncate(time.Hour)

    fmt.Println("原时间值:", t)
    fmt.Println("截断后时间值:", truncated)
}

该示例中,我们同样使用time.Now()函数获取当前时间值,然后将其截断到小时。输出结果如下:

原时间值: 2022-05-04 14:18:28.87886 +0800 CST m=+0.000227003
截断后时间值: 2022-05-04 14:00:00 +0800 CST

可见,分、秒都被截断为0,只剩下年、月、日、时。而时的值为14,与原时间值相同。

结论

time.Time.Truncate()函数可以用于将时间值截断到更早的日期或者时间。在实际应用中,可以使用该函数保留时间值某一范围内的公共部分。需要注意的是,该函数返回的是截断后的时间值,而原时间值不会发生改变。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程