时间日期:
func main() {
// 获取当前时间
now := time.Now()
fmt.Println("当前时间:", now)
// 获取年月日时分秒
fmt.Println("年:", now.Year())
fmt.Println("月:", int(now.Month())) // 不转int是英文的月份
fmt.Println("日:", now.Day())
fmt.Println("时:", now.Hour())
fmt.Println("分:", now.Minute())
fmt.Println("秒:", now.Second())
fmt.Println("星期几:", int(now.Weekday())) // 不转int是英文的星期数
fmt.Println("一年中的第几天:", now.YearDay())
fmt.Println("时区:", now.Location())
fmt.Println("返回当天的第几小时:", now.Hour())
fmt.Println("返回当天的第几分钟:", now.Minute())
fmt.Println("返回当天的第多少秒:", now.Second())
fmt.Println("返回当天的第多少纳秒:", now.Nanosecond())
// Sleep:睡眠
time.Sleep(time.Millisecond * 2000)
// 时间戳,时间戳是1970/1/1 0:00 到现在的秒数
fmt.Println("时间戳(秒):", now.Unix())
fmt.Println("时间戳(毫秒):", now.UnixMilli())
fmt.Println("时间戳(微秒):", now.UnixMicro())
fmt.Println("时间戳(纳秒):", now.UnixNano())
}
输出:
当前时间: 2023-02-12 22:50:10.536541 +0800 CST m=+0.000168709
年: 2023
月: 2
日: 12
时: 22
分: 50
秒: 10
星期几: 0
一年中的第几天: 43
时区: Local
返回当天的第几小时: 22
返回当天的第几分钟: 50
返回当天的第多少秒: 10
返回当天的第多少纳秒: 536541000
时间戳(秒): 1676213410
时间戳(毫秒): 1676213410536
时间戳(微秒): 1676213410536541
时间戳(纳秒): 1676213410536541000
格式化日期:
2006-01-02 15:04:05是日期格式,格式化后便于查看
func main() {
now := time.Now()
// 格式化日期时间
fmt.Printf("当前时间: %d-%d-%d %d:%d:%d\n", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
// 也可以赋值给变量,再处理
date := fmt.Sprintf("当前时间: %d-%d-%d %d:%d:%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
fmt.Println(date)
// 使用Format格式化
fmt.Println("年月日时分秒:", now.Format("2006/01/02 15:04:05")) // 当前时间
fmt.Println("年月日时分:", now.Format("2006/01/02 15:04"))
fmt.Println("年月日时:", now.Format("2006/01/02 15"))
fmt.Println("年月日:", now.Format("2006-01-02"))
fmt.Println("时分秒", now.Format("15:03:04"))
fmt.Println("年", now.Format("2006"))
fmt.Println("月", now.Format("01"))
fmt.Println("日", now.Format("02"))
fmt.Println("时", now.Format("15"))
fmt.Println("分", now.Format("04"))
fmt.Println("秒", now.Format("00")) // 这个00就不属于"2006/01/02 15:04:05"字符串中的了,就不会解析,按照00输出
}
输出:
当前时间: 2022-12-19 11:38:11
当前时间: 2022-12-19 11:38:11
年月日时分秒: 2022/12/19 11:38:11
年月日时分: 2022/12/19 11:38
年月日时: 2022/12/19 11
年月日: 2022-12-19
时分秒 11:11:38
年 2022
月 12
日 19
时 11
分 11
秒 00
时间戳格式转换:
func main() {
now := time.Now()
nowDate := "2006-01-02 15:04:05"
t := time.Unix(now.Unix(), 0) // sec:秒 nsec:纳秒
fmt.Println(t.Format(nowDate))
}
Sub方法:
func main() {
startTime := time.Now()
sum := 0
for i := 0; i < 10000000000; i++ {
sum++
}
// Sub方法让两个时间点相减,生成一个Duration类型值(代表时间段)
elapsedTime := time.Now().Sub(startTime)
//Since返回从t到现在经过的时间,等价于time.Now().Sub(t)。
//elapsedTime := time.Since(start)
fmt.Println("耗时:", elapsedTime) // 3.278499042s
}