time.Now() 获取当前时间
func main() {
now := time.Now() //获取当前时间
fmt.Printf("current time:%vn", 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:%02dn", year, month, day, hour, minute, second) //注意:%02d 中的 2 表示宽度,如果整数不够 2 列就补上 0
}
Format 方法格式化输出日期字符串
func main() {
now := time.Now()
// 格式化的模板为 Go 的出生时间 2006 年 1 月 2 号 15 点 04 分 Mon Jan
// 24 小时制
fmt.Println(now.Format("2006-01-02 15:04:05"))
// 12 小时制
fmt.Println(now.Format("2006-01-02 03:04:05"))
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"))
}
获取当前的时间戳
func main() {
now := time.Now() //获取当前时间
timestamp1 := now.Unix() //时间戳
timestamp2 := now.UnixNano() //纳秒时间戳
fmt.Printf("current timestamp1:%vn", timestamp1)
fmt.Printf("current timestamp2:%vn", timestamp2)
}
时间戳转换为日期字符串(年- 月-日 时: 分: 秒)
func unixToTime(timestamp int64) {
timeObj := time.Unix(timestamp, 0) //将时间戳转为时间格式
year := timeObj.Year() //年
month := timeObj.Month() //月
day := timeObj.Day() //日
hour := timeObj.Hour() //小时
minute := timeObj.Minute() //分钟
second := timeObj.Second() //秒
fmt.Printf("%d-%02d-%02d %02d:%02d:%02dn", year, month, day, hour, minute, second)
}
func main() {
unixToTime(1733194163) //2024-12-03 10:49:23
}
now.Format 把时间戳格式化成日期
func main() {
var timestamp int64 = 1733194163 //时间戳
t := time.Unix(timestamp, 0) //日期对象
fmt.Println(t.Format("2006-01-02 03:04:05")) //日期格式化输出
}
日期字符串转换成时间戳
func main() {
t1 := "2019-01-08 13:50:30" //间字符串
timeTemplate := "2006-01-02 15:04:05" //常规类型
stamp, _ := time.ParseInLocation(timeTemplate, t1, time.Local)
fmt.Println(stamp.Unix())
}
设置定时器
func main() {
ticker := time.NewTicker(time.Second) //定义一个 1 秒间隔的定时器
n := 0
for i := range ticker.C {
fmt.Println(i) //每秒都会执行的任务
n++
if n > 5 {
ticker.Stop()
return
}
}
}
func main() {
for {
time.Sleep(time.Second)
fmt.Println("我在定时执行任务")
}
}