目录
常用的函数
Go 语言的 time
包提供了日期和时间的处理功能,允许你在程序中进行时间相关的操作,包括获取当前时间、格式化时间、解析时间、计算时间间隔等。
以下是 time
包中一些常用的函数和类型:
time.Now()
函数:返回当前的本地时间。time.Parse(layout, value string)
函数:将一个格式化的时间字符串解析为一个time.Time
类型的值。time.Format(layout string)
方法:将一个时间格式化为指定布局的字符串。time.Duration
类型:表示时间间隔,以纳秒为基本单位。time.Sleep(duration)
函数:暂停程序的执行一段时间。
下面是一些常用的示例:
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
fmt.Println("当前时间:", now)
// 格式化时间为字符串
timeStr := now.Format("2006-01-02 15:04:05")
fmt.Println("格式化后的时间:", timeStr)
// 解析字符串为时间
parseTime, _ := time.Parse("2006-01-02", "2023-08-04")
fmt.Println("解析后的时间:", parseTime)
// 计算时间间隔
duration := time.Since(now)
fmt.Println("时间间隔:", duration)
// 暂停程序执行一段时间
time.Sleep(2 * time.Second)
fmt.Println("2秒后的时间:", time.Now())
}
time.Now()
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
fmt.Println("当前时间:", now)
year := now.Year() //年
month := now.Month() //月
day := now.Day() //日
hour := now.Hour() //小时
minute := now.Minute() //分钟
second := now.Second() //秒
fmt.Printf("%d-%02d-%02d %02d:%02d:%02d\n", year, month, day, hour, minute, second)
}
设置时区
获取当前时间的前一天0点
// 获取当前日期
t := time.Now().UTC()
// 计算前一天的日期
t = t.AddDate(0, 0, -1)
// 设置时间为零点
t = time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
// 输出结果
fmt.Println(t)
时间加减运算
在 Go 语言中,可以使用 time
包进行时间的加减运算。time.Duration
类型表示了时间间隔,可以通过加法和减法操作来对时间进行加减运算。
下面是一些常见的时间加减运算示例:
package main
import (
"fmt"
"time"
)
func main() {
// 获取当前时间
now := time.Now()
fmt.Println("当前时间:", now)
// 加上一段时间间隔
afterOneHour := now.Add(1 * time.Hour)
fmt.Println("一小时后的时间:", afterOneHour)
// 减去一段时间间隔
beforeOneDay := now.Add(-24 * time.Hour)
fmt.Println("一天前的时间:", beforeOneDay)
// 计算两个时间点之间的时间间隔
duration := afterOneHour.Sub(beforeOneDay)
fmt.Println("时间间隔:", duration)
// 执行相对时间的加减运算
tenMinutesLater := now.Add(10 * time.Minute)
fiveHoursEarlier := tenMinutesLater.Add(-5 * time.Hour)
fmt.Println("十分钟后五小时前的时间:", fiveHoursEarlier)
}
在示例中,我们使用 Add()
方法对时间进行加法运算,可以传入正数表示加上一段时间间隔,也可以传入负数表示减去一段时间间隔。使用 Sub()
方法可以计算两个时间点之间的时间间隔。
需要注意的是,加减的单位必须是 time.Duration
类型。常用的时间单位有纳秒(time.Nanosecond
)、微秒(time.Microsecond
)、毫秒(time.Millisecond
)、秒(time.Second
)、分钟(time.Minute
)、小时(time.Hour
)等。可以通过乘法和除法操作来得到特定单位的时间间隔。
另外,还可以使用 time.AddDate()
方法对年、月、日进行加减运算,根据需求选择适合的方法进行时间的加减操作。