📅  最后修改于: 2023-12-03 15:15:22.887000             🧑  作者: Mango
在 Golang 中,time 包提供了一系列用于处理时间的函数和类型。其中,time.Time 类型表示一个时间。
Add()
函数是 time.Time
类型提供的一个方法,用于将一个时间加上一个时间段(duration)得到一个新的时间。
Add(d Duration) Time
其中,d Duration
表示要加上的时间段。
下面是一个示例代码,演示如何使用 Add()
函数。
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
// 加上一分钟
oneMinuteLater := now.Add(time.Minute)
// 加上一小时
oneHourLater := now.Add(1 * time.Hour)
// 加上一天
oneDayLater := now.AddDate(0, 0, 1) // 使用 AddDate() 函数
fmt.Println("当前时间:", now)
fmt.Println("一分钟后:", oneMinuteLater)
fmt.Println("一小时后:", oneHourLater)
fmt.Println("一天后:", oneDayLater)
}
上面代码输出的结果类似于:
当前时间: 2021-10-19 11:42:49.187599 +0800 CST m=+0.000103100
一分钟后: 2021-10-19 11:43:49.187599 +0800 CST m=+60.000102900
一小时后: 2021-10-19 12:42:49.187599 +0800 CST m=+3600.000103100
一天后: 2021-10-20 11:42:49.187599 +0800 CST
上面代码中,首先获取了当前的时间 now
,然后使用 Add()
函数加上一分钟、一小时和一天得到了三个新的时间点。
需要注意的是,Golang 中的时间是可以相减的,得到一个时间段。例如:
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
// 获取昨天的时间
yesterday := now.AddDate(0, 0, -1)
// 计算两个时间点之间的时间段
duration := now.Sub(yesterday)
fmt.Printf("现在时间:%v\n", now)
fmt.Printf("昨天时间:%v\n", yesterday)
fmt.Printf("两个时间点之间的时间间隔:%v\n", duration)
}
上面代码输出的结果类似于:
现在时间:2021-10-19 11:57:14.196355 +0800 CST m=+0.000104300
昨天时间:2021-10-18 11:57:14.196362 +0800 CST
两个时间点之间的时间间隔:24h0m0s
上面代码中,首先获取了当前时间 now
,然后获取昨天的时间 yesterday
,最后使用 Sub()
函数计算这两个时间之间的时间段 duration
。