golang时间和日期相关函数
一、常用函数
时间和时期相关函数,需要导入time包。time.Time,用于表示时间
1. 获取当前时间的方法
now := time.Now() // now的类型就是time.Time
2. 如何获取到其他的日期信息
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now() // now的类型就是time.Time
fmt.Println("当前年:", now.Year())
fmt.Println("当前月:", now.Month())
fmt.Println("当前月:", int(now.Month()))
fmt.Println("当前年:", now.Day())
fmt.Println("当前时:", now.Hour())
fmt.Println("当前分:", now.Minute())
fmt.Println("当前秒:", now.Minute())
}
输出结果:
当前年: 2021
当前月: May
当前月: 5
当前年: 13
当前时: 20
当前分: 47
当前秒: 47
3. 格式化日期和时间 Format("2006/01/02 15:04:05")
now := time.Now() // now的类型就是time.Time
fmt.Println("当前时间:", now.Format("2006/01/02 15:04:05"))
fmt.Println("当前年月日:", now.Format("2006-01-02"))
fmt.Println("时分秒:", now.Format("15:04:05"))
输出结果:
当前时间: 2021/05/13 20:59:16
当前年月日: 2021-05-13
时分秒: 20:59:16
说明:
- "2006/01/02 15:04:05"这个字符串的各个数字是固定的,必须这么写
- "2006/01/02 15:04:05"这个字符串各个数字可以自由组合,这样可以按程序需求来返回日期和时间
4. 时间的常量
在程序中用于获取指定时间单位的时间,比如100毫秒:100 * time.Millisecond
type Duration int64
const (
Nanosecond Duration = 1 // 纳秒
Microsecond = 1000 * Nanosecond // 微秒
Millisecond = 1000 * Microsecond // 毫秒
Second = 1000 * Millisecond // 秒
Minute = 60 * Second // 分钟
Hour = 60 * Minute // 小时
)
- 休眠:time.Sleep(d Duration)
now1 := time.Now()
fmt.Println("休眠前时间:", now1.Format("2006/01/02 15:04:05"))
time.Sleep(2 * time.Second) // 休眠2秒
now2 := time.Now()
fmt.Println("休眠后时间:", now2.Format("2006/01/02 15:04:05"))
输出结果:
休眠前时间: 2021/05/13 21:22:25
休眠后时间: 2021/05/13 21:22:27
6. 获取当前的unix时间戳和unixnano时间戳(作用是可以获取随机数字)
func (t Time) Unix() int64
func (t Time) UnixNano() int64
now := time.Now()
fmt.Println("Unix时间戳:", now.Unix(), "UnixNano时间戳:", now.UnixNano())
输出结果:
Unix时间戳: 1620912706 UnixNano时间戳: 1620912706511741900
二、案例
编写一段代码,统计某个方法执行的时间
package main
import (
"fmt"
"time"
)
func test() {
time.Sleep(3 * time.Second)
}
func main() {
start := time.Now().Unix()
test()
end := time.Now().Unix()
fmt.Println("test()消耗的时间:", end-start)
}
输出结果:
test()消耗的时间: 3