使用time.Since函数计算指定时间与当前时间的时间间隔,并以指定单位显示

使用time.Since函数计算指定时间与当前时间的时间间隔

在Go语言中,我们可以使用time包的Since函数计算指定时间与当前时间的时间间隔。

t1 := time.Now()

time.Sleep(time.Second)

duration := time.Since(t1)

fmt.Println(duration)

在上面的代码中,我们首先获取当前时间t1,然后休眠一秒钟,再使用Since函数计算t1与当前时间的时间间隔duration,并输出duration。输出结果应该是大约1秒钟的时间间隔。

以指定单位显示时间间隔

默认情况下,Since函数返回的时间间隔以纳秒为单位。如果我们需要以其他单位显示时间间隔,可以使用time.Duration类型的常量来指定。

t1 := time.Now()

time.Sleep(time.Second)

duration := time.Since(t1)

fmt.Println(duration.Seconds())

在上面的代码中,我们首先获取当前时间t1,然后休眠一秒钟,再使用Since函数计算t1与当前时间的时间间隔duration,并将duration以秒为单位输出。

使用指定时间计算时间间隔

除了使用time.Now函数获取当前时间,我们还可以使用time.Parse函数将字符串解析为时间,然后使用Since函数计算指定时间与当前时间的时间间隔。

t1, _ := time.Parse("2006-01-02 15:04:05", "2022-01-01 00:00:00")

duration := time.Since(t1)

fmt.Println(duration.Hours())

在上面的代码中,我们使用time.Parse函数将字符串"2022-01-01 00:00:00"解析为时间t1,然后使用Since函数计算t1与当前时间的时间间隔duration,并将duration以小时为单位输出。

指定时间间隔的精度

默认情况下,Since函数返回的时间间隔的精度是纳秒。我们可以使用Round函数将时间间隔舍入到指定的时间单位上。

t1, _ := time.Parse("2006-01-02 15:04:05", "2022-01-01 00:00:00")

duration := time.Since(t1).Round(time.Hour)

fmt.Println(duration.Hours())

在上面的代码中,我们使用time.Parse函数将字符串"2022-01-01 00:00:00"解析为时间t1,然后使用Since函数计算t1与当前时间的时间间隔,并使用Round函数将时间间隔舍入到小时,最后将时间间隔以小时为单位输出。

完整示例代码

package main

import (

"fmt"

"time"

)

func main() {

t1 := time.Now()

time.Sleep(time.Second)

duration := time.Since(t1)

fmt.Println(duration)

t1 = time.Now()

time.Sleep(time.Second)

duration = time.Since(t1)

fmt.Println(duration.Seconds())

t1, _ = time.Parse("2006-01-02 15:04:05", "2022-01-01 00:00:00")

duration = time.Since(t1)

fmt.Println(duration.Hours())

t1, _ = time.Parse("2006-01-02 15:04:05", "2022-01-01 00:00:00")

duration = time.Since(t1).Round(time.Hour)

fmt.Println(duration.Hours())

}

总结:

在Go语言中,我们可以使用time包的Since函数计算指定时间与当前时间的时间间隔,并以指定单位显示时间间隔。可以使用time.Parse函数将字符串解析为时间,然后使用Since函数计算指定时间与当前时间的时间间隔。此外,我们还可以使用Round函数将时间间隔舍入到指定的时间单位上。

后端开发标签