golang 操作时间

161 阅读1分钟

1, 比较两个时间大小

先把要比较的时间转换为相同格式的时间

time1 := "2015-03-20 08:50:29"
time2 := "2015-03-21 09:04:25"
t1, err := time.Parse("2006-01-02 15:04:05", time1)
t2, err := time.Parse("2006-01-02 15:04:05", time2)
if err == nil && t1.Before(t2) {
    //处理逻辑
    fmt.Println("true")
}

year2000 := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
year3000 := time.Date(3000, 1, 1, 0, 0, 0, 0, time.UTC)

isYear2000BeforeYear3000 := year2000.Before(year3000) // True
isYear3000BeforeYear2000 := year3000.Before(year2000) // False

fmt.Printf("year2000.Before(year3000) = %v\n", isYear2000BeforeYear3000)
fmt.Printf("year3000.Before(year2000) = %v\n", isYear3000BeforeYear2000)

year2000.Before(year3000) = true
year3000.Before(year2000) = false

2,对目标时间进行加

time包中的Add和Sub的用法

start := time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC)
end := time.Date(2000, 1, 1, 12, 0, 0, 0, time.UTC)

difference := end.Sub(start)
fmt.Printf("difference = %v\n", difference)


Output:

difference = 12h0m0s

详情请查看 golang time 包的官方文档:

pkg.go.dev/time