使用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函数将时间间隔舍入到指定的时间单位上。