time包
时间类型
time.Now()
获取当前时间对象。然后可以根据时间对象获取对象的年月日。。。
1 | package main |
执行结果:
1 | 2019-08-05 13:56:04.2639783 +0800 CST m=+0.003994001 |
时间戳
时间对象转时间戳
1 | package main |
执行结果:
1 | 1564984727 |
时间戳转时间对象
1 | package main |
执行结果:
1 | 2019-08-05 13:58:47 +0800 CST |
时间间隔
time.Duration
是time
包定义的一个类型,它代表两个时间点之间经过的时间,以纳秒为单位常用来时间计算。
1 | const ( |
例如:time.Second
表示一秒,time.Hour
表示一小时。
时间操作
Add
1 | func (t Time) Add(d Duration) Time |
时间相加:
1 | package main |
执行结果:
1 | 2019-08-05 14:13:31.230839 +0800 CST m=+0.003991501 |
Sub
1 | func (t Time) Sub(u Time) Duration |
两个时间对象相减得到time.Duration
:
1 | package main |
1 | -10h0m0s |
Equal
1 | func (t Time) Equal(u Time) bool |
判断两个时间是否相同,受时区影响。
1 | package main |
执行结果:
1 | 2019-08-05 06:31:17.0639578 +0000 UTC |
Before
1 | func (t Time) Before(u Time) bool |
比较t时间是否在u之前:
1 | package main |
执行结果:
1 | 2019-08-05 14:40:06.0742141 +0800 CST m=+0.004017201 |
After
1 | func (t Time) After(u Time) bool |
比较t时间是否在u之后:
1 | package main |
执行结果:
1 | 2019-08-05 15:09:40.8128673 +0800 CST m=+0.004022201 |
定时器
使用time.Tick()
来设置定时器,定时器的本质上是一个channel
。
1 | package main |
执行结果:
1 | 2019-08-05 15:14:58.4715038 +0800 CST m=+3.004032801 |
时间格式化
go语言的格式化和其它语言有不同之处,是使用Go的诞生时间2006年1月2号15点04分(记忆口诀为20061234)。也许这就是技术人员的浪漫吧。
1 | package main |
执行结果:
1 | 2019-08-05 15:31:39 |
解析字符串格式的时间
1 | package main |
执行结果:
1 | 2019-08-05 13:14:52 +0800 CST |