时间操作
一 时间操作
1.1 创建时间
Golang中时间操作位于 time 包中,常见操作有:
// 当前时间
nowTime := time.Now()
fmt.Printf("当前时间为:%T\n", nowTime) // 其类型是 time.Time
fmt.Println(nowTime) // 2019-01-01 13:50:07.522712 +0800 CST m=+0.000138178
// 自定义时间
customTime := time.Date(2008, 7, 15, 13, 30,0,0, time.Local)
fmt.Println(customTime) // 2008-07-15 13:30:00 +0800 CST
1.2 时间格式化与解析
Go的时间格式化必须传入Go的生日:Mon Jan 2 15:04:05 -0700 MST 2006
nowTime := time.Now()
stringTime := nowTime.Format("2006年1月2日 15:04:05")
fmt.Println(stringTime) // 2019年01月01日 13:55:30
Go的时间解析:
stringTime := "2019-01-01 15:03:01"
objTime,_ := time.Parse("2006-01-02 15:04:05",stringTime)
fmt.Println(objTime) // 2019-01-01 15:03:01 +0000 UTC
注意:这些方法的参数模板必须与时间一一对应,否则报错!
1.3 获取 年 月 日
nowTime := time.Now()
year, month, day := nowTime.Date()
fmt.Println(year, month, day) // 2019 November 01
hour, min, sec := nowTime.Clock()
fmt.Println(hour, min, sec)
fmt.Println(nowTime.Year())
fmt.Println(nowTime.Month())
fmt.Println(nowTime.Hour())
fmt.Println(nowTime.YearDay()) // 指今年一共过了多少天
1.4 时间戳
时间戳是指计算时间距离 1970年1月1日的秒数:
nowTime := time.Now()
fmt.Println(nowTime.Unix())