Go time

Go time

Go中提供了很多关于时间处理的内容,这篇文章来主讲讲解下时间上的内容。

最外层可以直接使用的方法

  1. Time的方法:Data,Now,Unix

  2. Duration:Since,Until

  3. Timer:After,NewTimer,AfterFunc,Sleep

  4. 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
)

使用最多的方法应该是

  1. Round(m)

    取m的整数倍,最接近的。

  2. Truncate(m)

    取m的整数倍,但是最接近duration的下取整。

  3. Since(t)

    表示从t到现在now的duration

  4. Until(t)

    表示t直到now的duration

Time

time表示一个时间点或者instance。其主要的方法可以分为两类:一类是构造方法(通过使用其可以返回一个time),二类是操作方法(也就是Time的方法或者函数)

构造方法

  1. Data方法,通过传入,年月日等信息

  2. Now()获得当前local时间

  3. Parse(layout,value)获得时间

  4. Unix(s,ns)获得时间是从1,1,1970 UTC开始

使用方法

  1. Add,before,after,equal

  2. 对当前Time的访问方法

  3. 序列化和反序列方法

  4. Round和Truncate

  5. Unix返回的是int,表示1,1,1970 UTC

  6. UTC 返回对应的time的UTC time

Weekday,month等信息

Timer

表示了一个单次事件的定时器,其含有一个Time的chan,当一个Timer启动的时候,会启动一个新的gorountine,当达到对应duration的时候回向Time chan中写当前时间,并执行function。

  1. stop

  2. reset

Ticker

Ticker的功能和Timer类似,只不多是一个定周期tick一次。

  1. stop

你可能感兴趣的:(Go time)