时间类型
// timeDemo 时间对象的年月日时分秒 func timeDemo() { now := time.Now() // 获取当前时间 fmt.Printf("current time:%v\n", now) year := now.Year() // 年 day := now.Day() // 日 second := now.Second() // 秒 }
时间间隔
func main() { now := time.Now() later := now.Add(time.Hour) // 当前时间加1小时后的时间 fmt.Println(later) }
定时器
func tickDemo() { ticker := time.Tick(time.Second) //定义一个1秒间隔的定时器 for i := range ticker { fmt.Println(i)//每秒都会执行的任务 } }
转为字符串
// formatDemo 时间格式化 func formatDemo() { now := time.Now() // 格式化的模板为 2006-01-02 15:04:05 // 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")) // 小数点后写0,因为有3个0所以格式化输出的结果也保留3位小数 fmt.Println(now.Format("2006/01/02 15:04:05.000")) // 2022/02/27 00:10:42.960 // 小数点后写9,会省略末尾可能出现的0 fmt.Println(now.Format("2006/01/02 15:04:05.999")) // 2022/02/27 00:10:42.96 // 只格式化时分秒部分 fmt.Println(now.Format("15:04:05")) // 只格式化日期部分 fmt.Println(now.Format("2006.01.02")) }
字符串转为时间对象
// parseDemo 指定时区解析时间 func parseDemo() { // 在没有时区指示符的情况下,time.Parse 返回UTC时间 timeObj, err := time.Parse("2006/01/02 15:04:05", "2022/10/05 11:25:20") if err != nil { fmt.Println(err) return } fmt.Println(timeObj) // 2022-10-05 11:25:20 +0000 UTC // 在有时区指示符的情况下,time.Parse 返回对应时区的时间表示 // RFC3339 = "2006-01-02T15:04:05Z07:00" timeObj, err = time.Parse(time.RFC3339, "2022-10-05T11:25:20+08:00") if err != nil { fmt.Println(err) return } fmt.Println(timeObj) // 2022-10-05 11:25:20 +0800 CST
}
本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/p/16989816.html