使用time.Since函数计算指定时间与当前时间的时间间隔,并格式化输出为字符串

什么是time.Since函数

time.Since函数是一个用于计算指定时间与当前时间间隔的函数。它接收一个time.Time类型的参数,并返回一个time.Duration类型的值,表示当前时间与指定时间之间的时间间隔。

如何使用time.Since函数

创建一个time.Time类型的值

在使用time.Since函数之前,需要先创建一个time.Time类型的值,表示需要计算的时间点。可以使用time.Now()函数获取当前时间,也可以使用time.Parse()函数将字符串解析为时间。

以下是使用time.Now()函数创建一个当前时间的例子:

package main

import (

"fmt"

"time"

)

func main() {

t := time.Now()

fmt.Println(t)

}

输出:

2022-02-22 19:34:15.9638655 +0800 CST m=+0.006995901

以下是使用time.Parse()函数将字符串解析为时间的例子:

package main

import (

"fmt"

"time"

)

func main() {

t, _ := time.Parse("2006-01-02 15:04:05", "2022-02-22 19:34:15")

fmt.Println(t)

}

输出:

2022-02-22 19:34:15 +0000 UTC

使用time.Since函数计算时间间隔

有了需要计算的时间点,就可以使用time.Since()函数计算与当前时间之间的时间间隔。以下是一个例子:

package main

import (

"fmt"

"time"

)

func main() {

t, _ := time.Parse("2006-01-02 15:04:05", "2022-02-22 19:34:15")

d := time.Since(t)

fmt.Println(d)

}

输出:

12h45m58.2834515s

可以看到,time.Since()函数返回一个time.Duration类型的值,表示与当前时间之间的时间间隔。这个值可以用于计算过去了多长时间,例如:

package main

import (

"fmt"

"time"

)

func main() {

t, _ := time.Parse("2006-01-02 15:04:05", "2022-02-22 19:34:15")

d := time.Since(t)

fmt.Printf("%.0f hours have passed\n", d.Hours())

}

输出:

13 hours have passed

格式化输出时间间隔

默认情况下,time.Duration类型的时间间隔表示为纳秒。可以使用time.Duration.String()函数将时间间隔格式化为字符串输出。以下是一个例子:

package main

import (

"fmt"

"time"

)

func main() {

t, _ := time.Parse("2006-01-02 15:04:05", "2022-02-22 19:34:15")

d := time.Since(t)

fmt.Println(d.String())

}

输出:

13h50m48.6929653s

你还可以自定义时间间隔的格式。以下是一个例子:

package main

import (

"fmt"

"time"

)

func main() {

t, _ := time.Parse("2006-01-02 15:04:05", "2022-02-22 19:34:15")

d := time.Since(t)

fmt.Printf("%dh %dm %ds have passed\n", int(d.Hours()), int(d.Minutes())%60, int(d.Seconds())%60)

}

输出:

13h 50m 48s have passed

可以看到,我们使用time.Duration.Hours()time.Duration.Minutes()time.Duration.Seconds()函数分别获取时间间隔的小时、分钟和秒数,然后将它们格式化为字符串输出。

总结

time.Since函数可以用于计算指定时间与当前时间之间的时间间隔,可通过多种方式创建time.Time类型的值,并可以自定义时间间隔的格式。因此,使用time.Since函数可以方便、快捷地计算和输出时间间隔。

后端开发标签