package main import ( "fmt" "time" ) var DateFmtYYYYMMDD = "2006-01-02" var DateFmtYYYYMMDDHHmmss = "2006-01-02 15:04:05" func main(){ //设置全局时区为utc +8 utcZone := time.FixedZone("UTC", 0) time.Local = utcZone //当前时间转 "2022-04-30" fmt.Println("当前时间转 2022-04-30") fmt.Println(time.Now().Format(DateFmtYYYYMMDD)) //当前时间转 "2022-04-30 12:00:23" fmt.Println("当前时间转 2022-04-30 12:00:23") fmt.Println(time.Now().Format(DateFmtYYYYMMDDHHmmss)) // "2022-04-30" 转 "2022-04-30 00:00:00 +0000 UTC" fmt.Println("2022-04-30 转 2022-04-30 00:00:00 +0000 UTC") time1 := "2022-04-30" time1Parse, _ := time.Parse(DateFmtYYYYMMDD, time1) fmt.Println(time1Parse,time1Parse.String()) // "2022-04-30" 转 "2022-04-30 00:00:00 +0000 UTC" fmt.Println("2022-04-30 转 2022-04-30 00:00:00 +0000 UTC") time2 := "2022-04-30" time2Parse, _ := time.Parse(DateFmtYYYYMMDD, time2) fmt.Println(time2Parse,time2Parse.String()) // "2022-04-30" 转 "2022-04-30 00:00:00 " fmt.Println("2022-04-30 转 2022-04-30 00:00:00") time3 := "2022-04-30" time3Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, fmt.Sprintf("%s 00:00:00", time3)) time3Str := time3Parse.Format(DateFmtYYYYMMDDHHmmss) fmt.Println(time3Str) // 2022-04-30 02:00:00 与 2022-05-01 01:00:00 相差的小时数 fmt.Println("2022-04-30 02:00:00 与 2022-05-01 01:00:00 相差的小时数 [23]") time4 := "2022-04-30 02:00:00" time5 := "2022-05-01 01:00:00" time4Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time4) time5Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time5) hour1Interval := time5Parse.Sub(time4Parse).Hours() fmt.Println(hour1Interval) // 2022-05-01 01:00:00 2022-04-30 02:00:00 相差的小时数(为负数) fmt.Println("2022-05-01 01:00:00 2022-04-30 02:00:00 相差的小时数(为负数)[-23]") time6 := "2022-04-30 02:00:00" time7 := "2022-05-01 01:00:00" time6Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time6) time7Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time7) hour2Interval := time6Parse.Sub(time7Parse).Hours() fmt.Println(hour2Interval) // 2022-04-30 02:00:00 与 2022-05-01 01:30:30 相差的时分秒 fmt.Println("2022-04-30 02:00:00 与 2022-05-01 01:30:30 相差的时分秒 [23h30m30s]") time8 := "2022-04-30 02:00:00" time9 := "2022-05-01 01:30:30" time8Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time8) time9Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time9) hour3Interval := time9Parse.Sub(time8Parse).String() fmt.Println(hour3Interval) // 2022-04-30 的后一天 fmt.Println("2022-04-30 的后一天") time10 := "2022-04-30" time10Parse, _ := time.Parse(DateFmtYYYYMMDD, time10) nextDay := time10Parse.AddDate(0,0,1) fmt.Println(nextDay) fmt.Println("2022-04-30 的前一天") beforeDay := time10Parse.AddDate(0,0,-1) fmt.Println(beforeDay) fmt.Println("2022-04-30 12:30:00 的后一天") time11 := "2022-04-30 12:30:00" time11Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time11) nextDay2 := time11Parse.AddDate(0,0,1) fmt.Println(nextDay2) fmt.Println("2022-04-30 12:30:00 的前一天") beforeDay2 := time11Parse.AddDate(0,0,-1) fmt.Println(beforeDay2) }