时间类型在实际开发中使用频率很高, 代表现实世界的时间
在 Go 语言中时间类型不是关键字而是使用 time 包下 Time 结构体
时间类型默认显示为 UTC, 所以经常需要把时间类型转换为字符串, 显示成我们所熟悉的格式
# 二. Time 的使用
声明 Time 时, 默认时间是无意义的
- func main() {
- var t time.Time
- fmt.Println(t)// 输出: 0001-01-01 00:00:00 +0000 UTC
- }
可以通过 time 包下的 Now()函数获取操作系统当前时间
+0800 CST 表示北京时间, 东八区
- t := time.Now()
- fmt.Println(t) // 输出: 年 - 月 - 日 小时: 分钟: 秒. 纳秒 +0800 CST m=+0.003012301
也可以通过时间戳创建时间类型变量(距离 1970 年 1 月 1 日的纳秒差)
- /*
- 1 秒(s)=1000 毫秒(ms)
- 1 秒(s)=1000000 微秒(μs)
- 1 秒(s)=1000000000 纳秒(ns)
- */
- t := time.Now()
- t1 := time.Unix(0, t.UnixNano()) // 根据时间戳创建时间. 第二个值 [0, 999999999] 外合法
- fmt.Println(t.String())
- fmt.Println(t1)
可以根据自己要求创建时间
- //time.Local 取到本地时间位置对象, 东八区
- t := time.Date(2020, 5, 6, 7, 8, 9, 0, time.Local)
- fmt.Println(t) // 输出: 2020-05-06 07:08:09 +0800 CST
在 time 包下提供了大量的函数或方法获取时间的某一项
- t := time.Now()
- fmt.Println(t)
- fmt.Println(t.Year()) // 年
- fmt.Println(int(t.Month())) // 月
- fmt.Println(t.Day()) // 日
- fmt.Println(t.Date()) // 三个参数, 分别是: 年, 月, 日
- fmt.Println(t.Hour()) // 小时
- fmt.Println(t.Minute()) // 分钟
- fmt.Println(t.Second()) // 秒
- fmt.Println(t.Clock()) // 三个参数, 分别是: 小时, 分钟, 秒
- fmt.Println(t.Nanosecond()) // 纳秒
- fmt.Println(t.Unix()) // 秒差
- fmt.Println(t.UnixNano()) // 纳秒差
三. 时间和 string 相互转换
时间转换为 string
参数必须是这个时间, 为 Go 语言出现时间
- t := time.Now()
- // 参数必须是这个时间, 格式任意
- s := t.Format("2006-01-02 15:04:05", )
- fmt.Println(s)
string 转换为 Time
- s:="2022-02-04 22:02:04"
- t,err:=time.Parse("2006-01-02 15:04:05",s)
- fmt.Println(t,err)
时间类型
来源: http://www.bubuko.com/infodetail-3438106.html