文章目录
time包提供测量和显示时间的功能。
一 简单使用
打印显示出现的时间,基本示例如下。
其中now为time.Time
类型,Month为time.Month
类型,其他均为int
类型
实例演示:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now() //获取当前时间
fmt.Printf("current time:%v\n", 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:%02d\n", year, month, day, hour, minute, second)
fmt.Printf("%T, %T, %T, %T, %T, %T, %T\n", now, year, month, day, hour, minute, second)
}
运行结果:
[Running] go run "c:\Users\Mechrevo\Desktop\go_pro\test.go"
current time:2022-07-14 12:39:07.2146926 +0800 CST m=+0.003138101
2022-07-14 12:39:07
time.Time, int, time.Month, int, int, int, int
[Done] exited with code=0 in 0.941 seconds
二 时间戳
在编程中对于时间戳的应用也尤为广泛,例如在Web开发中做cookies有效期,接口加密,Redis中的key有效期等等,大部分都是使用到了时间戳。
时间戳自1970年1月1日(08:00:00GMT)至当前时间的总毫秒数。它也被称为Unix时间戳(UnixTimestamp)。在Golang中,获取时间戳的操作time.Now().Unix()
如下:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Printf("TimeStamp type:%T, TimeStamp:%v", now.Unix(), now.Unix())
}
运行结果
[Running] go run "c:\Users\Mechrevo\Desktop\go_pro\test.go"
TimeStamp type:int64, TimeStamp:1657773740
[Done] exited with code=0 in 0.912 seconds
除此之外还有纳秒时间戳,我们可以使用time.Now().UnixNano()
来获取它
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
fmt.Printf("TimeStamp type:%T, TimeStamp:%v", now.UnixNano(), now.UnixNano())
}
运行结果
[Running] go run "c:\Users\Mechrevo\Desktop\go_pro\test.go"
TimeStamp type:int64, TimeStamp:1657773821647393500