话不多说,上代码
package main
import (
"fmt"
"time"
)
func main() {
now := time.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)
timestamp1 := now.Unix() //时间戳
timestamp2 := now.UnixNano() //纳秒时间戳
fmt.Printf("%v,%v\n", timestamp1, timestamp2)
timeObj := time.Unix(timestamp1, 0) //将时间戳转为时间格式
fmt.Println(timeObj)
year2 := timeObj.Year() //年
month2 := timeObj.Month() //月
day2 := timeObj.Day() //日
hour2 := timeObj.Hour() //小时
minute2 := timeObj.Minute() //分钟
second2 := timeObj.Second() //秒
fmt.Printf("%d-%02d-%02d %02d:%02d:%02d\n", year2, month2, day2, hour2, minute2, second2)
later := now.Add(time.Hour) // 当前时间加1小时后的时间
fmt.Println(later)
//计算时间差 相当于计时器
time.Sleep(time.Second)
now2 := time.Now()
interval := now.Sub(now2)
fmt.Println(interval)
isEqual := now.Equal(now2) //比较两个时间是否相同
fmt.Println(isEqual)
isBefor := now.Before(now2) //判断是否在之前
isAfter := now.After(now2) //判断是否在之后
fmt.Println(isBefor, isAfter)
//定时器实现 每秒执行一次
// ticker := time.Tick(time.Second)
// for i := range ticker {
// fmt.Println(i)
// }
//时间格式化
// 24小时制
fmt.Println(now.Format("2006-01-02 15:04:05.000 Mon Jan"))
// 12小时制
fmt.Println(now.Format("2006-01-02 03:04:05.000 PM Mon Jan"))
fmt.Println(now.Format("2006/01/02 15:04"))
fmt.Println(now.Format("15:04 2006/01/02"))
fmt.Println(now.Format("2006/01/02"))
fmt.Println(now.Format("2006-01-02"))
// 加载时区
loc, err := time.LoadLocation("Asia/Shanghai")
if err != nil {
fmt.Println(err)
return
}
// 按照指定时区和指定格式解析字符串时间
timeObj2, err := time.ParseInLocation("2006/01/02 15:04:05", "2019/08/04 14:15:20", loc)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(timeObj2)
fmt.Println(timeObj2.Sub(now))
}