使用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函数可以方便、快捷地计算和输出时间间隔。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签