Go time
Go中提供了很多关于时间处理的内容,这篇文章来主讲讲解下时间上的内容。
最外层可以直接使用的方法
Time的方法:Data,Now,Unix
Duration:Since,Until
Timer:After,NewTimer,AfterFunc,Sleep
Ticker:NewTicker,Tick
Duration
duration代表了的是两个时间之间的elapse。实际上其实一个int64的封装。基本单位是使用ns
所以有:
const (
Nanosecond Duration = 1
Microsecond = 1000 * Nanosecond
Millisecond = 1000 * Microsecond
Second = 1000 * Millisecond
Minute = 60 * Second
Hour = 60 * Minute
)
使用最多的方法应该是
-
Round(m)
取m的整数倍,最接近的。
-
Truncate(m)
取m的整数倍,但是最接近duration的下取整。
-
Since(t)
表示从t到现在now的duration
-
Until(t)
表示t直到now的duration
Time
time表示一个时间点或者instance。其主要的方法可以分为两类:一类是构造方法(通过使用其可以返回一个time),二类是操作方法(也就是Time的方法或者函数)
构造方法
Data方法,通过传入,年月日等信息
Now()获得当前local时间
Parse(layout,value)获得时间
Unix(s,ns)获得时间是从1,1,1970 UTC开始
使用方法
Add,before,after,equal
对当前Time的访问方法
序列化和反序列方法
Round和Truncate
Unix返回的是int,表示1,1,1970 UTC
UTC 返回对应的time的UTC time
Weekday,month等信息
Timer
表示了一个单次事件的定时器,其含有一个Time的chan,当一个Timer启动的时候,会启动一个新的gorountine,当达到对应duration的时候回向Time chan中写当前时间,并执行function。
stop
reset
Ticker
Ticker的功能和Timer类似,只不多是一个定周期tick一次。
- stop